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