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

Re: --with-icondir



こんにちは山岡と申します。

>>>>> In [emacs-w3m : No.03912]
>>>>>	Masao Uebayashi <uebayasi@pultek.co.jp> wrote:

上林さん> configure のオプションに
上林さん> --with-icondir=/usr/local/share/emacs/site-lisp/w3m/icons
上林さん> などと指定してインストールすると、インストール先としては正し
上林さん> く指定されますが、w3m-icon-directory のデフォルトの値には反
上林さん> 映されず、手動で指定する必要があるようです。*.el の値にも
上林さん> configure で指定した値が反映されるようになると簡単でうれしい
上林さん> です。

あまり一般的ではないような気がしますが、できたら便利ですね。個人
的にインストールする場合だけでなく、コンパイル済みのパッケージを
作るときも。

ただ、CVS で checkout したその場で configure; make install する
人も少なくないと思うので、w3m.el そのものを改変してしまうのはちょっ
とまずい。誰か開発者が checkin するたびにデフォルト値がコロコロ
変わってしまいますから。:-p

そこで、もっと一般的ではないと思うのですが、環境に即したデフォル
ト値を w3m.elc が持つようにするのはどうでしょう。→ developers

;;; condifure.in の最後の行
AC_OUTPUT(Makefile w3micondir)

;;; 新設する w3micondir.in
(setq w3micondir "@ICONDIR@")

;;; w3mhack.el の (require 'cl) の前
(let (w3micondir)
  (if w3mhack-nonunix-icondir
      (setq w3micondir w3mhack-nonunix-icondir)
    (load "w3micondir" t t t))
  (if (and w3micondir
	   (not (string-equal w3micondir "NONE")))
      (put 'defcustom 'byte-optimizer
	   (lambda (form)
	     (if (eq 'w3m-icon-directory (nth 1 form))
		 (setcar (cdr form) w3micondir))
	     form))))

この byte-optimizer は defcustom の第一引数が w3m-icon-directory
だったら byte-compile する直前に第二引数を configure で指定され
た icondir で置き換えるという意味です。動作未確認。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>