[Date Prev][Date Next][Thread Prev][][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 )