[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:17294] Re: man コマンドの挙動



>> On Thu, 5 Jun 2008 17:37:00 +0900
>> shiiya@xxxxxxxxxxxxxxx (Yukio Shiiya) said as follows:

>> col.c の該当部分の処理は,以下の通りで,まったくマルチバイト文字は考慮
>> されていませんでした.
>>
>> col を通ってしまうと BS などが落ちてしまうわけですが,Emacs 付属の
>> man.el は,BS などを解釈して,強調表示などを行うようにしています.
>> なので,man.el から使う場合は col を通さない方が良いわけなんです.
>> 
>> (1) bsdmainutils に multibyte character が対応されていないぞと BTS
>> (2) emacs22 に上記設定相当を組み込むように BTS

>(1)に関しては、関連すると思われるバグ報告が既に上げられているようです。
>#319952 とは違いますかね?

ああ,確かに.確認が足りませんでした.merge しておきました.

>(2)に関しては、私は普段emacsを使っていないので確信は持てないのですが、
>(1)の修正を待たずに現状のままでも、MAN_KEEP_FORMATTING という環境変数を
>設定した状態でemacsを起動すれば、emacsの中からmanを表示した場合でも
>man-dbの内部処理でcolが使われないようになってmanの表示が改善されるように
>なったりしませんかね?

    (defadvice Man-getpage-in-background
      (around debian-manpage-force-utf8 activate compile)
      (let ((process-environment (copy-sequence process-environment)))
        (setenv "MAN_KEEP_FORMATTING" "1")
        ad-do-it))

でいけますね.

なお,先に私が示した案

    (setq Man-switches "-Tutf8")
    (defadvice Man-getpage-in-background
      (around debian-manpage-force-utf8 activate compile)
      (let ((locale-coding-system 'utf-8))
        ad-do-it))

とどちらが良いかは,ちょっと悩みます.なお,どちらも col の修正(1)は必要
とはしません

MAN_KEEP_FORMATTING を使う方法だと,ja_JP.eucJP な環境では,unicode を使
わずに済ませられます.

逆に -Tutf8 を使う方法だと,文字コードが最初から決め打ち(Unicode)なので,
ある意味で安全です.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )