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

Re: w3m-display-hook の破綻



>> On Thu, 29 Aug 2002 10:25:58 +0900 (JST)
>> 「白井」== shirai@rdmg.mgcs.mei.co.jp (Hideyuki SHIRAI (白井秀行)) said as follows:

土> ので,もっと泥臭い方法に修正しました.

白井> (setq hoge 1)
白井> (defvar hoge 2 "hoge だよ")
白井> hoge => 1

白井> と同じことが add-hook と defcustom にも当てはまる(らしい)ので、

白井> (1) (add-hook 'hoge-hook 'forward-char)
白井> (2) hoge-hook => (forward-char)
白井> (3) (defcustom hoge-hook
白井> (nconc '(backward-char delete-char))
白井> "*Hook だよ"
白井> :group 'w3m
白井> :type 'hook)
白井> (4) hoge-hook => (forward-char)

白井> となるのです。そのため、~/.emacs で独自に add-hook していると
白井> defcustom で設定されるべき初期値が無効になります。

この問題は認識していましたが,~/.emacs に add-hook を書くだけの技量が
ある人ならば,

    (eval-after-load "w3m" '(add-hook ...))

と言う書き方をしないと,defcustom で記述されている初期値は反映されない,
という知識も期待していいのではないかと思ったのですが,どうでしょう?

白井> で、提案なのですが、ぼくの考えた限りでは上記の二通りの人を満足さ
白井> せるのは無理だと思うので、

これには同意します.

白井> 現状 w3m-*-hook の初期値をソース内で設定しているものは、
白井> w3m-*-functions にして、すべての w3m-*-hook の初期値は nil にす
白井> るのはどうでしょうか? 必要だから初期値を設定しているわけですし。
[中略]
白井> みたいに。(冗長?)

うーん,確かに hook をプログラム内部で色々と変更しているのは問題がある
のでしょうねえ….現実装だと,Emacs20 / Emacs21 を共用している人が M-x
customize-variable RET w3m-displya-hook RET とかすると破綻しますし.

とりあえず,もっと簡単な方法としては,上記 eval-after-load 相当の書き
方を簡単に出来るように,~/.gnus のような初期化ファイルを用意するという
方法があると思いますが….うーん,どうするべきなのかなあ.

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )