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

Re: w3m-safe-url-regexp



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

> バッファローカル変数で実装するのは,筋が悪いんじゃないかなあと思います.
> SEMI だと,同一バッファ内で複数の text/html パートが出現することがありま
> すから.

それはぼくもちょっと考えたんですけれど、現在の実装ではパートごと
に `mime-w3m-safe-url-regexp' の値が異なることはないから問題無し
との結論に至りました。でもまあ、そういう制約をハナから作ってしま
うのはよろしくないですね。

> 案(1) w3m-safe-url-regexp を指定して w3m-fontify() を行った場合は,
>       text-property でその範囲に w3m-safe-url-regexp を貼り付けておく.

これが良いと思います。`w3m-safe-url-regexp' の値 nil は、どんな
url でも安全であることを意味しますが、`w3m-fontify' は必ず呼ばれ
る関数だから

(get-text-property (point) 'w3m-safe-url-regexp)

が nil を返した場合、text-prop が設定されなかったことを意味しな
いから、この値をそのまま使うことができますね。

> 案(2) w3m-fontify-*() が w3m-safe-url-regexp を参照して,安全でないアン
>       カー・画像については fontify しない.
>       こちらの案だと w3m-fontify-*() の速度低下が心配だし,あとから接頭
>       引数などでコマンドの処理が変えられない.

> ということで,私がやるとしたら案(1)かなあ.でも,これも今一かなあと思っ
> て,手が止まっていました.

何で今一?  ぼくはこの案(1)を試してみますよ。:)

> その間に,山岡さんの案が提出されましたが,

[...]

>> `w3m-safe-url-regexp-to-use' が mime-w3m などによって設定され
>> ない場合 (つまり通常の web ブラウズなどの場合) のために
>> `w3m-safe-url-regexp-to-use' のデフォルト値を特別な値 t にし
>> て、url が安全かどうかの判定には `w3m-safe-url-regexp' の値を
>> 使うことを意味させる。

> これ必要ありますか? w3m-safe-url-regexp は defvar で宣言してあるように,
> 内部変数だと思うので,

>     (or (not w3m-safe-url-regexp-to-use)
>         (string-match w3m-safe-url-regexp-to-use url))

> で十分ではないかと思うのですが.

ぼくの実装では `w3m-safe-url-regexp-to-use' を `w3m-region' がロー
カル変数にして、かつ値を設定しているからです。これは通常の web
ブラウズでは呼ばれない関数です。`w3m-fontify' を使うことはまった
く思いつかなかったんですが、ま、いいや。もう心が離れました。;-)

> 定数が何か特別な意味を持っていると,実装して暫くしてから,それを見ると意
> 味が分からなくなることが多いので,個人的に避けたいという気持もあります.

ぼくも経験上、土屋さんに強く同意します。(実ははじめはもっと醜い
実装を考えていて、あれでもすいぶんマシになったと思っていたんです
けれどね。;-p)

ところでもう一点。

現在の `w3m-safe-view-this-url' には mime-w3m などが設定した値で
の `w3m-safe-url-regexp' による制限がかかっていないので、spam メー
ルにあるリンクを簡単にアクセスできてしまいます。それを、ユーザー
が意図的に行なったんだからしようがない、と切り捨てるには危険が大
きいと思うので、これにも画像と同じ制限 (ただし prefix arg で解除)
を設けようと思います。その場合に cid だけを安全だとするのはちょっ
と見当違いな感じもするんですが、実質的な効果はあるからいいんじゃ
ないでしょうか。
-- 
山岡