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

[debian-devel:01416] Re: grep-ja package



aFrom: ukai@xxxxxxxxxxxxx
Subject: [debian-devel:01412]  Re: grep-ja package 
Date: Tue, 15 Jul 1997 12:24:06 +0900

> でソースをざっとながめて思ったんですが、grep.c の main() で
> setmacher()する前くらいで
> 
> 	if (!matcher)
> 	  matcher = prog;
> 
> 	/* j で始まる時は ctype=EUC モード */
> 	if (matchar[0] == 'j') {
> 	  mbcinit(MBCTYPE_EUC);
> 	  matcher ++;
>         }
> 
> 	if (!setmatcher(matcher) && !setmatcher("default"))
> 	  abort();
> 
> とかするとよいんじゃないかな?

これしないとまずいような気が…
# binprefix を cpp でわたしてやるべきかもしれない。

現状で jegrep, jfgrep は それぞれ egrep, fgrep の
マルチバイト版になっていません。

 ・egrep 'a(b|c)d' は abd か acd にマッチだが
   jegrep 'a(b|c)d' は a(b|c)d にマッチする

 ・fgrep 'ab*' は ab* にマッチするが 
   jfgrep 'ab*' は a, ab, abb,.. にマッチしてしまう。

これは上に書いた -E/-F なしでは setmatcher(matcher) で fail して
setmatcher("default") になっているからだと思われます。
上のようなパッチするか search.c の matchers[] で j prefix も
うけつけるようにした方がいいでしょう。

というわけで grep を replace する/しない にかかわらず
バグを直してくださいませ。

PS.
ソースみたら Makefile をいじってるみたいですけど
debian/rules で
 build:
	configure --prefix=/usr
	make binprefix=j manprefix=j

 binary-arch:
	(略)
	make binprefix=j manprefix=j prefix=debain/tmp/usr install

とかした方がよくないですか?
-- 
鵜飼文敏