[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00912] Re: FDclone 3.00i has been released



稲員です。

Release 作業お疲れ様でした。

…っと言った側から恐縮ですが bug 報告と、ちょっとお聞きしたい事が一点。

まず bug の方ですが MINIX 用の getmntfield() で space の判定が抜けて
いるため行末まで行っちゃってます。 MINIX only の bug ですし INFO_FILESYS
が効かない程度で、どうせ大した情報を取れない MINIX では実害は有りませんが。

=== modified file 'info.c'
--- info.c	2010-07-23 23:03:25 +0000
+++ info.c	2010-07-24 08:49:37 +0000
@@ -824,11 +824,11 @@
 
 	if (!cpp || !*cpp || !**cpp) return(vnullstr);
 
-	while (**cpp && !Xisprint(**cpp)) (*cpp)++;
+	while (**cpp && (!Xisprint(**cpp) || Xisspace(**cpp))) (*cpp)++;
 	if (!**cpp) return(vnullstr);
 	s = *cpp;
 
-	while (**cpp && Xisprint(**cpp)) (*cpp)++;
+	while (**cpp && (Xisprint(**cpp) && !Xisspace(**cpp))) (*cpp)++;
 	if (**cpp) *((*cpp)++) = '\0';
 
 	return(s);
=================================

次に、お聞きしたい事というのは MINIX での statfs2() の実装についてです。

FDclone-3.00i では USEFSTATFS, NOFBLOCKS, NOFBFREE, NOFFILES
の 4 つが無条件に有効になっており、貧弱な情報しか返さない fstatfs(2) が
使われます。これは 3.1.7 までの MINIX では仕方が無いのですが
[FDclone-users:00894,00896] あたりでちょっと触れた様に 3.1.8 へ向けた
現在の開発版ではよりまともな情報を返してくれる statvfs(2) が実装済みです。

そんな訳で 3.1.8 以降でも 3.1.7 以前と同様に SIZEINFO や INFO_FILESYS
が実質役立たずなままになってしまうのは少し寂しいのですが、現在の実装はどの様
な判断によるものでしょう?

  * minix/callnr.h なんていつ変わるか分からん様なシステムの実装の
    詳細を使うのは気色悪い。
  * Release されてもいない version まで面倒見れん。

あたりですか?


On Sat, 24 Jul 2010 02:34:00 +0900
Takashi SHIRAI <shirai@unixusers.net> wrote:

> ・gettimeofday(2) の第二引数を NULL に
>  何故か man page にそうしろって書いてあります。
> 

POSIX/SUS 関係でしょうね。少なくとも SUSv2 以降では第二引数に NULL
以外を渡すと "the behavior is unspecified" だそうなので。
Kernel 内部に Time Zone を持たせるという失敗した設計の名残なので、
通常は NULL にするのが正しい様です。

> > 	NetBSD 5.0 対応。
> 
>  すっかり忘れてるかも知れませんが [FDclone-users:00868] に
> 始まる thread の話です。NetBSD もなかなかにややこしい OS に
> なって来ましたね。ソースも昔はもっとすっきりしてたのに。

あんなの実質 NetBSD の bug なんじゃないですかねぇ?小細工の為に余計な
識別子 (それも如何にも被りそうな) を産み出して本来 user が使えるはずの
名前空間を不必要に汚染してるし。

# 昔はまった恨みからの余計な愚痴です

-- 
Rikito INAKAZU (稲員力士) <riki1017kazu@gmail.com>