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

[freewnn:00024] Re: patch-1.1.1-a001.gz



先日、wnn-users にて FreeWnn-1.1 のバグレポート先を
お聞きした矢吹と申します。
こちらの方が良さそうなので、Solaris2.5.1 と FreeBSD-3.1 で
コンパイルしてみて気が付いたところを報告します。

> 古川竜雄@FreeWnn Project です。
> 
> 今まで私のところに送られてきたパッチ(といっても2件だけですが ^_^;)をま
> とめました。
パッチの形にしてないのですが、問題点の報告だけさせていただきます。

(1) main() 関数の戻り値型が int になっていない。
Wnn/jserver/de.c
Wnn/jutil/wnnstat.c
Wnn/jutil/wnnkill.c
Wnn/jutil/wddel.c
Wnn/jutil/wdreg.c
Wnn/jutil/oldatonewa.c
Wnn/jutil/dtoa.c
Wnn/jutil/atod.c
Wnn/jutil/atof.c
Wnn/jutil/wnntouch.c

(2) ローカル変数のアドレスを返している。
Wnn/etc/msg.c:msg_get()
char *
msg_get(catd, id, msg, lang)
struct msg_cat *catd;
int	id;
char	*msg;
register char	*lang;
{
    register struct msg_cat *cd;
    char ret[128];			<===================
    register char *msg_bd;

    if(catd == 0)
	goto error;
    cd = catd;
    if(lang == 0 || *lang == '\0'){
	lang = cd->lang;
    } else {
	for ( ; ; cd = cd->nextp) {
	    if(strcmp(lang, cd->lang) == 0)
		break;
	    if(cd->nextp == 0) {
		cd->nextp = msg_open(cd->name, cd->nlspath, lang);
		cd = cd->nextp;
		break;
	    }
	}
    }

    if(msg_bd = get_msg_bd(cd, id))
	return(msg_bd);
error:
    if(msg != 0 && *msg != '\0')
	return(msg);
    sprintf(ret, "mes_id = %d: %s", id, DEF_MSG);
    return(ret);			<===================
}

(3) echo -n で -n が表示されてしまう。
色々な Makefile.in で _NULLCMD_

 _NULLCMD_ = @ echo -n

と定義されており、これを

	$(_NULLCMD_ )

として参照すると、実行される echo によっては、-n が表示されてしまう。
(_NULLCMD_ ってどういう意図で使われているのかが良くわかりませんでした。)

(4) gets() を使っている
Wnn/jutil/wddel.c:main()
--
(株)SRA オープンソースビジネス部 矢吹洋一