Namazu-users-ja(旧)


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

Re: Unicode(UTF-8) は使えない?



 From: Rei FURUKAWA <furukawa@xxxxxxxxxxxx>
 Subject: [namazu-users-ja] Re: Unicode(UTF-8) は使えない?
 Date: Sat, 17 Aug 2002 12:12:14 +0900

 > 試しに、nkf で UTF-8 が使えるようにしてみました。
 >    http://www01.tcp-ip.or.jp/~furukawa/nkf_utf8/

なかなかおもしろそうです。適当なDOCファイルで
wvHtml hoge.doc hoge.html; ./nkf -e hoge.html などとしてみましたが、
いまのところはうまく動いています。make test も問題ありません。

自動判別させられるようになれば、フィルタで lv を呼んでるところを
codeconv::toeuc($cont) だけでよくなるので、簡単にできますね。


 > まだまだバグがあると思われます (特に、自動判別や、文字コード
 > の混在、エラー処理などの部分) ので、何か問題があったら
 >  furukawa@xxxxxxxxxxxx までお知らせ下さい。

とりあえず、以下のコンパイル時のエラーだけ除いてみましたので、
差分をつけておきます。参考まで。

% make CC=gcc CFLAGS="-O2 -Wall"
gcc -O2 -Wall -c utf8tbl.c
gcc -O2 -Wall -o nkf nkf.c utf8tbl.o
nkf.c:348: warning: initialization from incompatible pointer type
nkf.c:607: warning: type defaults to `int' in declaration of `option_mode'
nkf.c: In function `mime_begin_strict':
nkf.c:2020: warning: `c1' might be used uninitialized in this function

--
馬場  肇 ( Hajime BABA )                  E-mail: baba@xxxxxxxxxxxxxxxx
宇宙科学研究所 宇宙科学企画情報解析センター
--
--- nkf.c.orig	Sat Aug 17 11:55:01 2002
+++ nkf.c	Sat Aug 17 12:54:52 2002
@@ -230,6 +230,7 @@
 static  void    rot_conv PROTO((int c2,int c1));
 static  void    base64_conv PROTO((int c2,int c1));
 static  void    no_connection PROTO((int c2,int c1));
+static  int     no_connection2 PROTO((int c2,int c1,int c0));
 
 static  void    code_status PROTO((int c));
 
@@ -345,7 +346,7 @@
 
 static void (*oconv)PROTO((int c2,int c1)) = no_connection; 
 /* s_iconv or oconv */
-static int (*iconv)PROTO((int c2,int c1,int c0)) = no_connection;   
+static int (*iconv)PROTO((int c2,int c1,int c0)) = no_connection2;   
 
 static void (*o_zconv)PROTO((int c2,int c1)) = no_connection; 
 static void (*o_fconv)PROTO((int c2,int c1)) = no_connection; 
@@ -604,7 +605,7 @@
 #endif
 };
 
-static option_mode;
+static int option_mode;
 
 void
 options(unsigned char *cp) 
@@ -2017,7 +2018,7 @@
 mime_begin_strict(f)
 FILE *f;
 {
-    int c1;
+    int c1 = 0;
     int i,j,k;
     unsigned char *p,*q;
     int r[MAXRECOVER];    /* recovery buffer, max mime pattern lenght */
@@ -2520,10 +2521,18 @@
 #endif
 
 void 
-no_connection(c1,c2) 
-int c1,c2;
+no_connection(c2,c1) 
+int c2,c1;
+{
+    fprintf(stderr,"Module connection failure.\n");
+    exit(1);
+}
+
+int
+no_connection2(c2,c1,c0) 
+int c2,c1,c0;
 {
-    fprintf(stderr,"Module connection faileur.\n");
+    fprintf(stderr,"Module connection failure.\n");
     exit(1);
 }