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

provide/run-hooks の順序



---
難波と申します。当 ML に入っておりませんので送れるかどうかよく判りませ
んが送信してみます。3月頃に一回バグレポートをお送りしましたが、その時は
送れましたので。

今、手元にあるのは

emacs-w3m-version "1.3.74" 

で、w3m-load-hook が使えるようになり、やれ嬉しやと思い、今まで 
w3m-mode-hook に書いていた内容を add-hook したところ、無限ループに
なってしまいます。

w3m-load-hook から読み込んでいる自分のプログラムの先頭に(require 'w3m) 
と書いてあるためです。

という訳で、w3m.el の次の最後の2行

(run-hooks 'w3m-load-hook)
(provide 'w3m)

の順序を逆にしていただけないでしょうか( run-hooks を最後に移動)?


ちなみに、emacs-20.7 (21.2 には無い?) の dired-x には、古い dired.el 
(dired-x は (require 'dired) します)の問題として次のような記載があります。

CAUTION: If you are using a version of GNU Emacs earlier than 19.20
than you may have to edit `dired.el'.  The copy of `dired.el' in GNU
Emacs versions earlier than 19.20 incorrectly had the call to
`run-hooks' _before_ the call to `provide'.  In such a case, it is
possible that byte-compiling and/or loading dired can cause an infinite
loop.  To prevent this, make sure the line of code

             (run-hooks 'dired-load-hook)

is the _last_ executable line in the file `dired.el'.  That is, make
sure it comes _after_ the line

             (provide 'dired)

これを読んでから、自作のプログラムでは provide は先頭に書くのが習慣と
なりました(心情的には provide は最後に書くのが自然なのですが…)。


難波清一@東京都西東京市 (http://www.asahi-net.or.jp/~pi9s-nnb/)
NAMBA Seiichi <sn@asahi-net.email.ne.jp>