[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-safe-url-regexp
>>>>> In [emacs-w3m : No.09966] 山岡 wrote:
> こんな方針で変更するのではいかがでしょうか?
> 1. text/html メッセージを表示するバッファで `w3m-safe-url-regexp'
> をローカル変数にして、(mew|mime|mm)-w3m-safe-url-regexp の値
> を反映させる。
すでにリリースされている Gnus の版は改造できないので、だめですね。
Mew, Wanderlust, Gnus ともに
(let ((w3m-safe-url-regexp XXX-w3m-safe-url-regexp))
(w3m-region ARGS))
という構造なので、こんなことをすれば良いかな。あんまり美しくない
ですが。
1. 新しい変数 `w3m-safe-url-regexp-to-use' を導入。`w3m-region'
はそれをバッファローカル変数にして、`w3m-safe-url-regexp' の
そのとき束縛されている値をそれに記憶させ、以後の url が安全か
どうかの判定にはその値を使う。
ただしすべての場面で描画を `w3m-region' が行なうわけではない
から、`w3m-safe-url-regexp-to-use' がローカル変数になっていな
いこともある。そんな場合のために `w3m-safe-url-regexp-to-use'
のデフォルト値を特別な値 t にして、url が安全かどうかの判定に
は `w3m-safe-url-regexp' の値を使うことを意味させる。
つまり、
(defvar w3m-safe-url-regexp-to-use t
"Variable that holds the value of the `w3m-safe-url-regexp' variable.
This will be made buffer-local in buffers in which html contents are
rendered, and will be set to the value of `w3m-safe-url-regexp' that
might be bound to the value of the variable `mew-w3m-safe-url-regexp',
`mime-w3m-safe-url-regexp', or `mm-w3m-safe-url-regexp'.
The special value t means to use the value of `w3m-safe-url-regexp' to
compare with a url in order to examine whether the url is safe. That
is the case where `w3m-region' has not been used to render a page (only
`w3m-region' sets this variable). Otherwise, a non-nil value of this
variable overrides the value of `w3m-safe-url-regexp', and it is used
to compare.")
(defun w3m-region (args)
...
(set (make-local-variable 'w3m-safe-url-regexp-to-use)
w3m-safe-url-regexp)
...)
そして、これ↓
(defun w3m-retrieve (args)
...
(unless (and w3m-safe-url-regexp
(not (string-match w3m-safe-url-regexp url)))
...Retrieving...))
を次のように変更:
(defun w3m-retrieve (args)
...
(unless (let ((regexp (if (eq w3m-safe-url-regexp-to-use t)
w3m-safe-url-regexp
(or w3m-safe-url-regexp-to-use
w3m-safe-url-regexp))))
(and regexp
(not (string-match regexp url))))
...Retrieving...))
以下の 3. と 4. も同様に。
> 2. `w3m-safe-toggle-inline-image' と `w3m-safe-toggle-inline-images'
> を廃止。それらにバインドされているキーのコマンドを
> `w3m-toggle-inline-image' と `w3m-toggle-inline-images' に戻す。
> 3. `w3m-toggle-inline-image' は url を `w3m-safe-url-regexp' と
> 照合し、安全でない場合は表示しない。対話的に呼ばれた場合は
> This image is considered to be unsafe; use the prefix arg to force display
> と言わせる。さらに接頭引数付きで対話的に呼ばれた場合でも
> Are you sure you really want to show this image (maybe insecure)?
> で確認を求める。
> 4. `w3m-toggle-inline-images' は `w3m-safe-url-regexp' とそれぞ
> れの画像 url を照合し、安全でないものは表示しない。対話的に呼
> ばれた場合は
> There are some images considered unsafe; use the prefix arg to force display
> と言わせる。接頭引数付きで対話的に呼ばれた場合は、全画像 url
> を走査して、`w3m-safe-url-regexp' に合致しない画像がある場合
> には
> Are you sure you really want to show all images (that may be insecure)?
> で確認を求める。
--
山岡