Mercurial の 1.4 版から、端末表示幅にあわせてヘルプテキストが折り返されるようになったのだけど、案の定というか、言語設定を日本語にしてある(LANGUAGE=ja 等)場合、折り返された行末で表示が乱れるケースがちらほらと。 ぱっと見、複数バイトで構成される文字の途中で改行されているんだろうなぁ、と原因の目星は付いていたのだけど、何やかにやでついつい後回しになっていたパッチ作成作業に、ようやく着手することに。 ソースを追いかけていくと結局のところ、Python 標準の行折り返しライブラリである textwrap モジュールが、明らかに1文字=1バイトな文字コードしか念頭に置いていないことが原因っぽいことが判明。 そんな textwrap を Mercurial で使ってしまっていること自体は、まぁ良しとしましょう。でも、21 世紀ももうすぐ 10 年が経とうとしているこのご時