[Senna-dev 373] Re: ./lib/str.cについて

Back to archive index

島村 優太郎 ml****@ryne*****
2006年 10月 20日 (金) 21:03:21 JST


島村です。

On Oct 20, 2006, at 4:19 PM, Tasuku SUENAGA wrote:

> Shift-JISとEUC-JPについても、
> NFKCと同等の正規化を実現できるとうれしいと思っ 
> ていますが、
> まだ実現できていません。
> 誰かstr.cとutil/unicode/nkfc.rbをいじってくれないかな…

util/unicode/nfkc.rb見てみました。
Rubyわかんないですが。爆

sjisだけでも結構大変なのに、いろんなところで文 
字のチェックを行っているみたいで
結構見ててびっくりしてます。

もう少しstr.cとかlex.cを眺めてたいなぁ。とか。

> 現在のnormalize_sjisの実装は、
> 一つの文字が正規化後に複数の文字に対応するこ 
> とを想定していないので、
> 確かに○付き文字+2桁数字の正規化はキビしい 
> ですね…
>
>> (*d++とlength++やったりとか、めちゃくちゃしてます)
> 大きく手を入れないのなら、その方向で良いと思 
> います。
>
> *d++してlength++してる箇所で
>
>      if (cp) { *cp++ = sen_str_digit; }
>
> も実行してやればうまく行きそうに思えます。
>
> もしダメだったら、パッチを見せて頂けると何か 
> 分かるかも知れません。

これなんですが、ほんとに初歩的なミスと言います 
か、
*d=の後の指定に0xをつけなかったので、文字がおか 
しくなっていただけでした。
実際には
                 case 0x49:
                         *d = 31; // ここは0x31とかかな 
きゃいけないのに
                         *d++;
                         length++;
                         *cp++ = sen_str_others;
                         *d = 30; // ここも
			break;

こうになっていて、文字がおかしくなっていただけ 
でした。。
手間をお掛けさせてしまい、申し訳ございません。。

今の所、sjisの個人的な部分(ひらがな|カタカナの大 
小文字正規化)以外の部分
(絵文字正規化、記号正規化とか)が終わったら、 
パッチにして流してみようと思います。

ご回答ありがとうございました。

------------------☆
島村 優太郎
ml****@ryne*****
------------------☆




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