[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00589] Re: jserver -v option & bug fix
- To: freewnn@tomo.gr.jp
- Subject: [freewnn:00589] Re: jserver -v option & bug fix
- From: YABUKI Youichi <yabuki@XXXX>
- Date: Wed, 23 May 2001 20:04:12 +0900
- In-Reply-To: Your message of "Wed, 23 May 2001 12:48:21 JST." <20010523034828Z30248-28273+2@srapc1149.sra.co.jp>
- Reply-To: freewnn@tomo.gr.jp
- User-Agent: EMH/1.10.0 SEMI/1.13.7 (粟津
)CLIME/1.13.6 (中ノ庄
) Emacs/20.7(i386-vine-linux-gnu) MULE/4.1 (葵
)
> > そもそも,何故この配列のサイズが 80 なのか,定数名をどうして
> > 使わないのか,という問題もありますが.
> > ファイル名の長さとか,ユーザ名の長さとか,あちこちで
> > バラバラなのが結構ありますよね.#define 切ってるところも
> > あるけど,それを使っていたり,直接数字を書いてたり.
> > 値が同じならまだしも,色々違っている.違っているのが
> > 意味があるのか,ないのか.辞書に書き込まれたり,プロトコル
> > に関わる部分は変えられないでしょうけど,この辺統一したいところですね.
>
> 固定長になるべく依存しないように、
> 少しずつ修正していくのはたいへんですかね、
> 関連する修正個所が
> 大きくなるとは思いますが、
そうすべきとは思います.
> 例えば、ここだと cmd_name[80] になっているようですが、
> 固定長にせず、argv[0] の長さに対応して malloc して、、といった感じで
そうですね.それでも良いと思います.
この部分は,char *cmd_name; ... cmd_name = argv[0]; でも
充分という気もしてきましたが.
malloc するにしても何にしても,この cmd_name については,
Xsi/Wnn/jserver/error.c の以下の部分が問題になってきます.
(現状でも問題ありかもしれませんが.)
void
error1 (x, y1, y2, y3, y4, y5)
register char *x;
int y1, y2, y3, y4, y5;
{
char buf[512];
strcpy (buf, cmd_name); /* strcpy(buf , "jserver:"); */
strcat (buf, ":");
strcat (buf, x);
sprintf (buf, x, y1, y2, y3, y4, y5);
my_error (buf);
}
char buf[512] をやめて,必要な長さを計算して malloc するように,
やろうと思えばできそうですが,この error1() は,他のところで
malloc() に失敗したときのエラーメッセージ出力に使われているので…
--
矢吹洋一@SRA Linux ソリューション部