_ [comp] 続々々・rxvt-unicode ×問題再び

返事来た。まとめると、

  • rxvt-unicode は locale が指定した文字幅を尊重している。
    • プログラムは locale の指定に従うべきで、そうしないのはバグである。
  • libc ではなく、vim や xterm などあらゆるプログラム側で、locale の制限のためにこのような修正をしなければならないのはナンセンス。
  • 正しい locale を用いるか、locale を修正すべき。または libc が EastAsianWidth の文字幅のような、詳細を設定する手段を提供すべき。そうすれば locale を尊重している正しいプログラムはきちんと動作するようになる。
  • このような理由で Markus Kuhn’s wcwidth() 実装は buggy である。

ということのようで、この考えを変えるつもりはないそうだ。 確かにその通りかもしれないけど、不便なことには変わりないので、debian-devel@jp に救援を出してみた。本家じゃないところが日和ってるけど。> [debian-devel:16693] East Asian Width Problem at rxvt-unicode-ml

_ [debian] iceweasel 2.0.0.3-1vd2, w3m 0.5.1+cvs1.974-0vd4

間違って libc6 2.5-0exp6 でビルドされていたので、2.3.6.ds1-13 で作り直し。

_ [debian] acroread 7.0.9-0.1 変

久々に起動したら、

% acroread
expr: syntax error
expr: syntax error
expr: syntax error
        :

と永久に出続ける。何事かと思って sh -x で見てみると、

++ echo libgtk-x11-2.0.so.0.1000.11
++ sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
++ return 0
+ version=
+ '[' 0 -ne 0 ']'
++ expr length
expr: syntax error

GTK+ 2.10 にしたので、0.「10」00.11 となってしまってマッチしなくなったようだ。

--- /usr/bin/acroread.orig      2007-03-26 19:36:13.000000000 +0900
+++ /usr/bin/acroread   2007-03-26 19:36:25.000000000 +0900
@@ -418,7 +418,7 @@
            return 1
         fi

-               echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
+               echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]*\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
         return 0
     fi

としてやると動作するようになった。