Motoyuki Kasahara
m-kas****@sra*****
2007年 10月 3日 (水) 12:05:54 JST
笠原です。 >> 修正して頂いた nkf.c (rev 1.139) を試してみました。ファイル単一で >> 指定したときは、正しく動作しているようですが、複数のファイルを指定 >> した際の判定で失敗しています。 >> >> $ nkf -g *.txt >> cr.txt: ISO-2022-JP (CR) >> crlf.txt: ISO-2022-JP (MIXED NL) >> lf.txt: ISO-2022-JP (MIXED NL) >> mixed.txt: ISO-2022-JP (MIXED NL) >> none.txt: ISO-2022-JP (MIXED NL) : 略 > む、モジュール用の部分は初期化追加したんですが複数ファイルの方忘れてます > ね。修正しました。 修正された nkf.c で、さらに色々と試してみました。 細かい話で恐縮ですが、-g 指定時は他のオプションとの兼ね合いはどうなる のでしょう? たとえば文字コード変換や改行コード変換オプション、MIME エンコードは効かないようになっています。 $ nkf -g -s -Lw test.txt EUC-JP (LF) <- Shift_JIS (CRLF) にはならない $ nkf -g -MB test.txt EUC-JP (LF) <- ASCII にはならない これはこれで正しいと思いますが、一方で MIME のデコードは自動で 効きます。-m0 の指定で無効にもできます。 $ cat test2.txt =?ISO-2022-JP?Q?=1B=24=42=24=22=1B=28=42=0D=0A?= $ nkf -g test2.txt ISO-2022-JP (MIXED NL) $ nkf -g -m0 test2.txt ASCII (LF) 失礼ながら一貫していない気がするのですが、いかがでしょうか。 さらに、入力文字コードに関するオプションを指定すると、変わった挙動 を示します。 $ nkf -g test3.txt ISO-2022-JP (LF) $ nkf -g -J test3.txt BINARY <- なぜか BINARY $ nkf -g -S test3.txt Shift_JIS (LF) <- 入力データからの文字コード判別はしない -g 指定時は、これらのオプションを無視するか、競合するオプションと いうことでエラーにするか、いずれかにした方が良いと思います。 -- __________________________________________________________________ 笠原 基之(かさはら もとゆき) Motoyuki Kasahara <m-kas****@sra*****>