[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 ソリューション部