[Nkf-dev 48] Re: -g オプションの改行コード判定

Back to archive index

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*****>




nkf-dev メーリングリストの案内
Back to archive index