寺西です。

# ちょっと勘違いしていました。

00 00 〜 ff ff までの2バイトの組み合わせで変換テストを行っている
のでした...。

Tadamasa Teranishi wrote:
> 
> 00 0e 00 0f => 00 00           ここは何かまずいような...。
> 00 8e 00 8f => 00 00

(X & 0x80) == 0x0e or 0x0f の場合に、削られているだけでした。

> 00 a1 〜 00 fe => 80 a1 〜 80 fe  何故か 80 が頭に付く

しかし、この時は 00 が 80 に変換されるというバグがあります。
 
> 00 ff       => 80              ここも何かまずいような...。

ここも ff が削られるだけのようです。
結局 5文字(0e, 0f, 8e, 8f, ff)が削られるようです。

この動作が正しいのかどうかを吟味する必要がありそうです。

A. 入力データはそのまま出力するべき
B. 入力データのうち、おかしなものは出力しないべき

のどちらの方針でいくかだけだろうと思いますが、B とした場合、この
5文字だけ削るのが正しいのかどうか...。
 
> >   テストパターン側を直せばいいわけですが... 副作用が本当にないかどうか
> > は不安なところではあります。
> 
> テストパターンの修正も必要かもしれませんが、やはり出力に問題がある
> ように思います。

上記 5文字だけテストパターンを削るという方法はあるかと思いますが、
途中で 00 が 80 に化けるのはバグだと思うので、KAKASI のプログラムを
直さないといけないでしょうね。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  
[メールアドレス保護]
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E

_______________________________________________
Kakasi-dev mailing list
[email protected]
http://www.namazu.org/cgi-bin/mailman/listinfo/kakasi-dev

メールによる返信