namazu-ml(ring)


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

Re: Text::kakasi/mknmz/perl



<199906010950.SAA23444@xxxxxxxxxxxxxx>の記事において
私は書きました。

>>   0.10はkakasiのmain()相当部をKakasi.xs内部に持っているのですが、その
>> 辺りの違いに鍵がありそうです。

  改めてソースを見直してみたのですが、顕著に違う部分というのはこれといっ
て見付かりません...

  強いて言えば、

    Character c[KAKASIBUF], r[KAKASIBUF];
    int clen, ptype, pctype;

  これらの変数が、0.10ではstaticに取ってあるのに対し、0.21ではautoに取っ
ていることぐらいでした。
  これが原因とはちょっと考えにくいのですが、お手数でなければこのメール
の末尾に添付したパッチをkakasi-2.2.5w-lib3aを適用後のソースに当てて試
していただけませんでしょうか。

# 手元で再現しないとなんとも追求が難しいです... Solaris 2.5.1 for
# Intelではさくっと動いてしまいましたし。

-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)
NLUG WWW <http://nagoya.linux.or.jp/>


*** kakasi.c    Tue Jun  8 17:51:48 1999
--- kakasi.c.new        Tue Jun  8 17:53:12 1999
***************
*** 67,72 ****
--- 67,74 ----
  extern FILE *kanwadict;
  static int (*proc[8])()={NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL};
  /* ASCII, JISROMAN, KATAKANA, GRAPHIC, 全角記号, 全角カナ, 全角かな,
漢字 */
+     Character c[KAKASIBUF], r[KAKASIBUF];
+     int clen, ptype, pctype;
  #endif
  
  extern input_term_type, output_term_type;
***************
*** 455,462 ****
  char *kakasi_do(str)
       char *str;
  {
-     Character c[KAKASIBUF], r[KAKASIBUF];
-     int clen, ptype, pctype;
      char *ret;
  
      setcharbuffer(str);
--- 457,462 ----