namazu-ml(avocado)


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

patch for Namazu-1.1.1.2 on OS/2



清水@住友林業です。

とりあえず動いているように見える Namazu-1.1.1.2 for OS/2 用の patch を
流します。ヒマと侠気のある方は、テストしてみてください。

 %diff -u srnmz.c.orig srnmz.c > diff.os2
 %diff -u mknmz.pl.orig mknmz.pl >> diff.os2
 %diff -u wdnmz.pl.orig wdnmz.pl >> diff.os2

した結果 (diff.os2)です。率直な話、99.9999% は広瀬さんの WIN32 化の流用
になってます。違うところは、mknmz.pl のパイプ処理のところだけで、OS/2 の
perl 5.004_01 ではまともに動くので、UNIX 側に振ってあります。

なお、ChaSen に絡む部分もやっつけましたが、ChaSen の OS/2 化の予定は現在
のところありません。

# 誰かやって〜

また、OS/2 用の Makefile のサンプルは、次のメールで流します。

では。



--- srnmz.c.orig	Sat Feb 21 14:43:24 1998
+++ srnmz.c	Mon Feb 23 20:47:48 1998
@@ -451,7 +451,7 @@
     }
 }
 
-#ifdef WIN32
+#if	defined(WIN32) || defined(OS2)
 
 unsigned char jistojms(unsigned char c1, unsigned char c2)
 {
@@ -502,7 +502,7 @@
     }
 }
 
-#endif  /* #ifdef WIN32 */
+#endif  /* (WIN32 || OS2) */
 
 
 /* デバッグ用のセコイ関数 */
@@ -559,7 +559,7 @@
         }
     }
     buf[i] = (uchar)NULL;
-#ifdef WIN32
+#if	defined(WIN32) || defined(OS2)
     euctosjis(buf);
 #endif
     fputs(buf, stdout);
@@ -1487,7 +1487,7 @@
 {
     uchar buf[1024];
     strcpy(buf, USAGE);
-#ifdef WIN32
+#if	defined(WIN32) || defined(OS2)
     euctosjis(buf);
 #endif
     fputs(VERSION, stderr);
@@ -1634,7 +1634,7 @@
 }
 
 
-#ifdef __WIN32__
+#if	defined(__WIN32__) || defined(__EMX__)
 
 /* ChaSen forWin は system で呼び出す */
 /* 林@富士ファコム制御さんから頂きました [11/13/97] */
@@ -1686,7 +1686,7 @@
     return;
 }
 
-#else  /* #ifdef WIN32 */
+#else  /* !(__WIN32__ || __EMX__) */
 
 
 /* fork して日本語わかち書きプログラムを呼び出す */
@@ -1774,7 +1774,7 @@
     return;
 }
 
-#endif  /* #ifdef WIN32 */
+#endif  /* (__WIN32__ || __EMX__) */
 
 /* おかしな EUC を訂正する。古いパッチをあてた 
    kakasi -Ea -w の '0xa4' バグを吸収する 
@@ -2082,13 +2082,13 @@
     }
 
     if (codeconv(keystring)) {
-#ifdef __WIN32__
-	zen2han(keystring);
+#if	defined(__WIN32__) || defined(__EMX__)
+ 	zen2han(keystring);
  	euctosjis(keystring);
  	wakati2(keystring);
  	sjistoeuc(keystring);
  	correcteuc(keystring);
-#else
+#else	/* !(__WIN32__ || __EMX__) */
 #ifndef CHASEN  /* ChaSen を使う場合は自前で全角->半角コンヴァート */
 	zen2han(keystring);
 #endif
@@ -2097,7 +2097,7 @@
 #endif
 	wakati(keystring);
 	correcteuc(keystring);
-#endif  /* #ifdef WIN32 */
+#endif  /* (__WIN32__ || __EMX__) */
 
     }
 
--- mknmz.pl.orig	Fri Feb 20 22:43:50 1998
+++ mknmz.pl	Mon Feb 23 20:26:36 1998
@@ -111,7 +111,7 @@
 ##
 ## このプログラムの動作に関係する定数
 ##
-$SYSTEM = "%OPT_SYSTEM%";      # 動作環境 UNIX/WIN32
+$SYSTEM = "%OPT_SYSTEM%";      # 動作環境 UNIX/WIN32/OS2
 $ADMIN  = '%OPT_ADMIN_EMAIL%'; # 管理者のメールアドレス
 $CGI_ACTION = '%OPT_URL_CGIBIN%/namazu.cgi'; # <FORM> の ACTION の指定
 
@@ -365,7 +365,7 @@
     if ($SYSTEM eq "UNIX") {
 	$PSC = "/";
 	$CCS = "euc";
-    } elsif ($SYSTEM eq "WIN32") {
+    } elsif (($SYSTEM eq "WIN32") or ($SYSTEM eq "OS2")) {
 	$PSC = "\\";
 	$CCS = "sjis";
     }
@@ -910,7 +910,7 @@
     $PROTOCOL = cwd() . "$PSC" if $PROTOCOL eq "\t";
 
     $file_segment = &findfiles;
-    if ($SYSTEM eq "UNIX") {
+    if (($SYSTEM eq "UNIX") or ($SYSTEM eq "OS2")) {
 	open(FLIST, "|$NKF -jZ >$FLIST_") || die "$FLIST_: $!\n";
     } elsif ($SYSTEM eq "WIN32") {
 	# 例によって Win32 のパイプは変なので別処理になる
@@ -1015,7 +1015,7 @@
     $url = $tmp;
     $url =~ s/(.*)\/($DEFAULT_FILE)$/$1\//;  # 省略可能なファイル名なら削除
     $url =~ s/^\../$PROTOCOL/;
-    if ($SYSTEM eq "WIN32") {
+    if (($SYSTEM eq "WIN32") or ($SYSTEM eq "OS2")) {
 	$url =~ s|\\|/|g;          # \ を / に
 	$url =~ s#^([A-Z]):#/$1|#; # ドライヴ部分を /C| のように置き換え
     }
--- wdnmz.pl.orig	Fri Feb 20 22:43:50 1998
+++ wdnmz.pl	Mon Feb 23 20:27:30 1998
@@ -48,7 +48,7 @@
 sub usage () {
     if ($SYSTEM eq "UNIX") {
 	print $USAGE;
-    } elsif ($SYSTEM eq "WIN32") {
+    } elsif (($SYSTEM eq "WIN32") or ($SYSTEM eq "OS2")) {
 	open(NKF, "|$NKF -s");
 	print NKF $USAGE;
 	close(NKF);


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