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

Re: w3m-safe-url-regexp and w3m-safe-toggle-inline-image



>>>>> In [emacs-w3m : No.06511] 土屋さん wrote:

> ふと思い出したので,とりあえず覚え書き.

> 現在,w3m-safe-toggle-inline-image() は w3m-safe-url-regexp を参照せ
> ずに cid: という固定文字列を使っていますが,これはちょっと矛盾した仕
> 様ではないでしょうか.Gnus の場合は mm-w3m-safe-url-regexp, SEMI MUA
> の場合は mime-w3m-safe-url-regexp, Mew の場合は
> mew-w3m-safe-url-regexp をそれぞれ見る必要はありませんか?

> で,それぞれをきちんと見るのは大変なので,

面倒だなー、と思っていたところ、土屋さんが cid: の固定値でいいじゃ
ん、と助け船を出してくれた記憶がぼくの中にはあります。:)

> w3m-region() を呼び出す側が w3m-safe-url-regexp を let で束縛する代
> わりに,バッファローカル変数にすれば良いのではないかと思うんですが,
> どうでしょう?

それいいですねえ。きのう別の場面で同じことに気が付いたのは偶然で
はないような気が。w3m-safe-url-regexp だけを見るようにした
emacs-w3m を、未対応の MUA で使っても default-value が効くから、
問題は起きないですね。

Gnus の場合は mm-view.el の以下の部分を改造すれば良い感じです。

	(let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
	      w3m-force-redisplay)
	  (w3m-region (point-min) (point-max)))

	↓

	(set (make-local-variable 'w3m-safe-url-regexp)
	     mm-w3m-safe-url-regexp)
	(let (w3m-force-redisplay)
	  (w3m-region (point-min) (point-max)))

Gnus の場合はいったん article バッファを作ったら、その後ずっと使
い回すから、最初にローカル変数を作っておけば良いかと言うとさにあ
らず、mm-w3m-safe-url-regexp の値が変更された場合に反映させなけ
ればいけません。それが上記の案の根拠です。

それから、マズいものを見つけてしまったんですが、たぶん
gnus-article-wash-html-with-w3m という関数[1] における
w3m-safe-url-regexp の値の操作 ↓ は大間違いですね。^^;;

    (let ((w3m-safe-url-regexp (if mm-inline-text-html-with-images
				   nil
				 "\\`cid:"))
	  w3m-force-redisplay)
      (w3m-region (point-min) (point-max)))

とりあえず以上の二つを作業しておきました。

[1] ボディは text/html なのにヘッダが間違っている場合などに
    emacs-w3m で render させるための関数です。あまり使う機会は
    無いでしょう。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
;; おとといくらいから Emacs 21.3.50 がよく落ちる。;_;