Namazu-devel-ja(旧)


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

OS/2 problem



毎々お世話になっております。住友林業の清水です。

昨年来、メインマシンの移行で OS/2 の開発環境が構築できずにいましたが
やっと autoconf 〜 make が実行できるようになりました。

さっそく最新の stable コードで make して実行したところ、

・kakasi-2.3.4 

  autoconf / configure / make で問題なし。動作も問題なし。

・namazu-2.0.10

 (1) win32 と同じく str(n)casecmp を str(n)icmp にする必要あり

 (2) namazu が出すメッセージが SJIS 化された(gettext 効果?)が、
      検索結果の部分は EUC のまま(mknmz の出力通り)

という点が判明しました。

 (1) については、[namazu-devel-ja #02297] にある、

     2002-01-12  Ryuji Abe  <rug@xxxxxxxxxx>

        * nmz/support.h [Solaris 2.5]: Abandoned to use __vsnprintf
        because of binary compatibility issue.
        [WIN32]: Use str(n)icmp instead of str(n)casecmp.

    を OS/2 でも(emx でも)、 #ifdef __EMX__  を使って対応していた
    だければ済むと思います。

 (2) についても、win32 で SJIS / EUC 混在ということはないと思われま
     すので、win32 での処理とそろえていただければいいと思います。

     win32 での挙動の詳細を把握せずに書いて申し訳ないのですが、個人
     的には、

       コマンドラインから起動した場合は SJIS に揃える
       cgi から起動した場合は EUC に揃える

     というのが使い易いと思ってます。もちろん、いつでも EUC に揃える
     (あるいは SJIS に揃える)ということでも問題はないです。

なお、上記の (1) を追いかけていて気がついたのですが、OS/2 では
nmz/support.h にある以下のコード(およびその前後)と、

   #ifndef HAVE_STRCASECMP
   #define strcasecmp _nmz_strcasecmp
   #endif

   #ifndef HAVE_STRNCASECMP
   #define strncasecmp _nmz_strncasecmp
   #endif

nmz/util.h にある以下のコード(およびその前後)

   extern int nmz_strcasecmp ( const char *str1, const char *str2 );
   extern int nmz_strncasecmp ( const char *str1, const char *str2, int n );

の両方を回った結果、「symbol _str(n)casecmp があらへんでぇ」と言われて
いるように思います。で、最終的に nmz_str(n)casecmp がどこにも定義されて
いないというのが問題の源泉ですよね。

このへんのコードも、[namazu-devel-ja #02297] にある、

   2002-01-12  Ryuji Abe  <rug@xxxxxxxxxx>

        * nmz/support.h [Solaris 2.5]: Abandoned to use __vsnprintf
        because of binary compatibility issue.
        [WIN32]: Use str(n)icmp instead of str(n)casecmp.

で整理(消去)されているのでしょうか。

CVS が使えない(環境) & よくわかってない(知識)ので、自分で確認で
きず申し訳ないですが、ご確認よろしくお願いします。

ではでは。

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