namazu-ml(avocado)


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

Re: Namazu v1.1.1.4 released



清水@住友林業です。

Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> さんは 
Mon, 2 Mar 1998 07:13:21 +0900 に書きました ;

> 高林です
> 
> 小さな修正を行いました。変更点は以下の通りです。
> 
> v1.1.1.4
> 	[3/2/98]
> 
> 	* namazu で日本語分解の際にテンポラリファイルを作らないようにしま
> 	  した
> 	* Win32 用の Makefile (Makefile.W32) を添付しました
> 	  (広瀬@NECエンジアリングさんが作成してくださりました Thanks!)
> 	* OS/2 でドライヴの扱いに問題があった点を修正しました
> 	  (清水@住友林業さんがパッチを作成してくださりました Thanks!)

すいません、隔日刊 OS/2 patch になってしまいますが、ドライブの扱いを
完全にしたと思ったら、今度は相対パスの扱いをバグらせていました。

というわけで、「インデックスのあるディレクトリを指す文字列に、ドライブ
レターが含まれているか否か」を、「文字列の 2 byte 目が ':' か否か」で
判断し、_chdir2() を実行する/しないを分岐させました。

今度こそイロイロな入力を試してみたので、これで大丈夫だと思います。


> これって execl() を execlp() に変更するだけで解決する問題でした。
> つまり、 execl() はフルパスで指定しないといけなくて、 execlp() は
> プログラムの指定にに '/' が含まれないときは環境変数 PATH を参照し
> て実行してくれるそうです。たぶん、これで大丈夫でしょう。
> 
> それから、今まで KAKASI の出力をテンポラリファイルに落としていたの
> ですが、 pipe で双方向に通信する方法が分かったのでこれは不要になり
> ました。

あー、ここ、私も namazu-1113 のソース追っていて気が付いたのですが、
namazu-1113 では__EMX__を通すと、わかち書きプログラムが必ず chasen
になってしまうという bug がありました。修正せな、と思っていたのです
が、namazu-1114 できれいに解消されていますね。

OS/2 では execl() でも execlp() でも、環境変数 PATH を見て動作する
ので、この部分は namazu-1114 で全然問題ないです。

あと、namazu のバージョン情報が

  Search Program of Namazu Version 1.1.1.3
  Copyright (C) 1997-1998 Satoru Takabayashi All rights reserved.

のままだったので、こっちにも patch を当ててあります :-)

では、patch 本体です。


--- srnmz.c.orig	Mon Mar  2 07:00:12 1998
+++ srnmz.c	Mon Mar  2 16:08:42 1998
@@ -26,7 +26,7 @@
 */
 
 /* ソフトウェア情報 */
-static char *VERSION = "  Search Program of Namazu Version 1.1.1.3\n";
+static char *VERSION = "  Search Program of Namazu Version 1.1.1.4\n";
 static char *COPYRIGHT =
 "  Copyright (C) 1997-1998 Satoru Takabayashi All rights reserved.\n\n";
 static char *USAGE = "  usage: %s [-nwsvhca] [dir] \"key string\"\n\
@@ -2085,17 +2085,21 @@
 	if (i <= ac - 2) {
 	    if (-1 == chdir(av[i]))
 		error(av[i]);
-#ifdef __EMX__
-            if (-1 == _chdir2(av[i]))
-                error(av[i]);
+#ifdef	__EMX__
+	    if (*(av[i] + 1) == ':') {
+		if (-1 == _chdir2(av[i]))
+		    error(av[i]);
+	    }
 #endif
 	    i++;
 	} else {
 	    if (-1 == chdir(DEFAULT_DIR))
 		error(DEFAULT_DIR);
-#ifdef __EMX__
-            if (-1 == _chdir2(DEFAULT_DIR))
-                error(DEFAULT_DIR);
+#ifdef	__EMX__
+	    if (*(DEFAULT_DIR + 1) == ':') {
+		if (-1 == _chdir2(DEFAULT_DIR))
+		    error(DEFAULT_DIR);
+	    }
 #endif
 	}
 	if (strlen(av[i]) >= BUFSIZ - 1) {

end
--
  住友林業株式会社  情報システム部   清水 和佳
 
  TEL: +81-3-5322-6672  FAX: +81-3-5322-6658  Niftyserve: XLW01034
  e-mail: <kshimz@xxxxxxxxx>