本を読む

読書やコンピュータなどに関するメモ

cowsayのマルチバイト対応パッチがDebian・Ubutuに採用された

 cowsayというのは、端末上でアスキーアートの牛さん(またはほかのキャラクター)にフキダシでしゃべらせるコマンドです。

$ cowsay Hello
 _______
< Hello >
 -------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

 ただ、マルチバイト文字をしゃべらせると、文字のサイズとフキダシのサイズが合わなくなるという問題がありました。よくある、文字列のバイト数=端末のカラム幅と仮定していることが原因なわけですが。

 Google Plusでその話が出ていたので簡単なパッチを書いたところ、Kenichiro MATOHARAさんがDeibanのBTS(bug tracking system)に報告してくれて、採用されました。

 Debianの次期バージョンDebian stretchのcowsayと、Ubuntuの次期バージョンUbuntu 16.04 LTSのcowsayにはすでに入っているようです。

$ cowsay めでたしめでたし
 __________________
< めでたしめでたし >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

 ちなみにそのパッチはこれ(↓)。基本的にlength()をText::CharWidthのmbswidth()に置きかえているだけです。Text::CharWidth(Debianパッケージではlibtext-charwidth-perl)は、debconf-i18nも利用しているパッケージなので、入っていることが多いと思います。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/1320-785e00dc

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad