namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Broken ja_JP.ISO-2022-JP.po
Satoru Takabayashi wrote:
> printf での \045 の取り扱いはシステムによってまちまちです。
> 次のプログラムで実験しました。
(snip)
> * FreeBSD 3.4R: 空白文字が 67890個出力される!
知りませんでした。うう、おそろしい。X-(
> ただいま printf() を fputs() に置き換えたところ、文字化けは
> 解決しました。ja_JP.ISO-2022-JP.po は printf() が絡むと扱い
> が非常に厄介です。
$ LANG=ja_JP.ISO-2022-JP namazu
で、確認しました。今度はcoreを吐いてお亡くなりになるような
ことはありませんでした。
> 対策としては
>
> 1. % を含まないなら printf() を使わない、約束を徹底する
> make_iso-2022-jp では c-format のときに % を %% に変換
>
> 2. nmz_printf() を用意して printf() の代わりに使う。そして、
> LANG=ja_JP.ISO-2022-JP 用の workaround を施す
>
> 3. xgettext を修正して printf() 中の文字列に対しては % を
> 含まなくても c-format の印をつける。
>
> 4. LANG=ja_JP.ISO-2022-JP の対応を廃止する
>
> が考えられます。どうしたものか…。ご意見くださいませ。
4もやむを得ないと考えたのですが...ISO-2022-JPは難しい...
> とりあえず、
>
> % cd po
> % cvs update -j 1.3 -j 1.1 make_iso-2022-jp_po.in
>
> で 1.1 に戻しておきました。「c-format のときだけ %を %%に変
> 換する処理」がないとやはりまずいので。
申し訳ないです。(m_m)
A A
= . . =
V
end
Ryuji Abe