Mew 5.2に独自Content-Typeを追加
Mewを5.2に上げたとたんに問題発生。どのメールを見ても、本文が表示されずに見慣れない
####### # # # # ##### ####### ### ####### # #というバナーが表示されるようになった。
# # # ## # # # # # # # ## #
# # # # # # # # # # # # # #
##### # # # # # # # # # # # # #
# # # # # # # # # # # # # #
# # # # ## # # # # # # # ##
# ##### # # ##### # ### ####### # #
あちこちにデバッグプリントを入れたりして調べるうちに、mew-mime-content-typeの中身を独自に追加していたのが悪さをしているのがわかった。
5.1までは、mew-vars2.elでmew-mime-content-typeにContent-Typeリストを初期設定していたので、~/.mew.elでこの変数に必要なContent-Typeを追加しておくだけでよかった。ところが、5.2では、mew-vars2.elではこの変数をnilに初期設定しており、~/.mew.elの後で読み込まれるmew-varsx.elで、この値がnilのときに限りリストを設定するようになっているため、mew-mime-content-typeをいじった結果、"text/plain"を含む基本的なContent-Typeがすべて抜けおちてmew-mime-functionが呼ばれてしまっていた。
なので、mew-varsx.el読込みの後で実行されるmew-init-hookでローカルな設定関数を呼んでもらうしかないようだ。
というわけで、~/.mew.elに
(defvar mew-prog-dvi '("xdvi" ("-geometry" "+0+0") t))を加えてみて、うまく動作することを確認した。
(add-hook 'mew-init-hook
(lambda ()
(setq mew-mime-content-type
(cons
'("application/x-dvi" "\\.dvi$" mew-b64
mew-prog-dvi mew-icon-text)
mew-mime-content-type))
))
ちなみに、lambdaはself-quotingなのでquoteやfunctionする必要はない。
追記(1/17)
cons作ってsetqするより、add-to-listを使う方が洗練されてそうで見た目もすっきりするので変更。
(add-hook 'mew-init-hook
(lambda ()
(add-to-list 'mew-mime-content-type
'("application/x-dvi" "\\.dvi$" mew-b64
mew-prog-dvi mew-icon-text))
))
追記(1/17)
Mew5FAQに載っていた。
0 件のコメント:
コメントを投稿