内藤です。

> 2018/11/07 17:42、Kouichi Hirabayashi <k...@mogami.com>のメール:
> 
> 例えば、/usr/src/lib/libedit を下記のように書き換えて、EUC-JP
> の 2 バイト文字を連続して読み、文字幅の計算を正しい値にすれば、
> /lib/libedit.so.7 を置き換えるだけで回避できるようです。

なるほど、 ct_enc_width() を直してあげれば良かったんですね。
それならば、添付の libedit.patch で eucJP はいけるようになるはずです。

マルチバイトの処理は wctomb(3) と mbrtowc(3) が locale を見て処理してくれますから、
そちらに任せる方が簡単です。

CHARSET_IS_UTF8 フラグの影響範囲をもう少し良く見る必要がありますので、
UTF-8 の場合は /bin/sh 起動時に locale が設定されている必要がありますけれども、
とりあえず eucJP の場合を試してもらえますでしょうか?

-- 
内藤 祐一郎
naito.yuich...@gmail.com


Attachment: libedit.patch
Description: Binary data

_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信