[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:17292] Re: man コマンドの挙動
>> On Thu, 5 Jun 2008 08:52:56 +0900
>> ishikawa@xxxxxxxxxxx (ISHIKAWA Mutsumi) said as follows:
>>> ページャで出すときと標準出力に送るときとで挙動が異なっていて、標準出
>>> 力に送るほうがおかしい?
> ということで 差異は col なので、これをおえばいいんじゃないかなーと思い
> ます。
ビンゴ.col.c の該当部分の処理は,以下の通りで,まったくマルチバイト文字
は考慮されていませんでした.
while ((ch = getchar()) != EOF) {
if (!isgraph(ch)) {
switch (ch) {
case BS: /* can't go back further */
if (cur_col == 0)
continue;
--cur_col;
continue;
>> On Thu, 5 Jun 2008 07:44:23 +0900
>> kise@xxxxxxxxxxx (KISE Hiroshi) said as follows:
>一時しのぎだと思いますが、groffのオプションを指定する方法
> man -Tutf8 man
>とすれば、標準出力からUTF8で出てくるようです。
この方法で,Emacs 上の M-x man RET を使えるようにするには,以下の設定を
~/.emacs に書けば良いようです.
(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 を通ってしまうと BS などが落ちてしまうわけですが,Emacs 付属の
man.el は,BS などを解釈して,強調表示などを行うようにしています.
なので,man.el から使う場合は col を通さない方が良いわけなんです.
というわけで,
(1) bsdmainutils に multibyte character が対応されていないぞと BTS
(2) emacs22 に上記設定相当を組み込むように BTS
するのが正しい道のようです.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )