[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:
URLのエコ
ー
;; なんとか実装するつもりだったんですが,時間ができるのがいつになるや
;; ら分からないので.
>> On Wed, 02 Mar 2005 12:38:37 +0900
>> "ari" == ari@mbf.ocn.ne.jp (ARISAWA Akihiro) said as follows:
山> カーソルを移動したときに echo エリアに出る文字列と、new session で
山> ページを読み込み始めたときにバッファの中央に現れる Reading... の
山> 文字列もデコードして欲しくなりました。そうなると、変数名
山> w3m-decode-help-echo は別の何かに変える必要がありますが。
ari> 叩き台ということもあって、変数名も適当でした(^^;
ari> 以下のような変数名でどうでしょうか。
ari> (defcustom w3m-show-decoded-url nil
ari> "If non-nil, show decoded url in mode-line and tooltip."
ari> :group 'w3m
ari> :type 'boolean)
単純な boolean ではなくて,各ページ毎に使用する文字コードをルール指定
できるようにしてほしいです.
(1) t なら,デフォルトの推定規則(= 現在表示中のページの文字コード +
w3m-coding-system-priority-list)で推定して decode する.
(2) 文字コードが指定されていたら,自動推定は行わずに,その文字コード
で decode する.
(3) 文字コードのリストが指定されていたら,そのリストを優先順位リスト
として用いて推定し,decode する.
(4) 連想配列が指定されていたら,各要素の car が述語として解釈し,述
語が一致するまで先頭から検索する.見つかった要素の cdr を,上記
の (1)〜(3) に従って解釈.
うまく customize-variable が動かなくて悩んでいたのですが,custom spec
で書くと,以下のような感じかなと思います.
(defcustom w3m-show-decoded-url t
"*Non-nil means that URIs are decoded when a mouse is on their area."
:group 'w3m
:type '(choice
(coding-system :tag "Use this encoding")
(const :tag "Prefer the encoding of the current page" t)
(repeat :tag "Prefered encodings" coding-system))
(repeat
:tag "Rules to select an encoding of URIs on the current page"
(cons (choice
(regexp :tag "Regexp matches the current page")
(function :tag "Predicate checks the current page")
(sexp :tag "Expression checks the current page"))
(choice
(coding-system :tag "Use this encoding")
(const :tag "Prefer the encoding of the current page")
(repeat :tag "Prefered encodings" coding-system)))))
ただ,この記法だと,(3)と(4)の区別(どちらもリストなので,区別するには
リストの中身を見ないといけない.一応は一意に決まるはずだと思うのですが)
が分かりにくくなりそうで,嫌だなあと思って止まっていました.
ari> # デフォルトを t にしちゃっても良い?
まあ,とりあえずやってしまって,様子を見るのでどうでしょうか.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )