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

w3m-read-file-name() と file-name-history



# ftp に続く FSF Emacs *だけ* の問題、第二段 ^^;;;

file を download したりするときに使う w3m-read-file-name() です
が、"default のままリターン" すると file-name-history に default
が入ってしまって、dired でその履歴を使いたいときに悲しい。という
問題があります。

(let ((default-directory "~/TEMP/"))
  (read-file-name "そのままリターン: " "~/TEMP/" "foo" nil "foo")
  (car file-name-history))

を試してみるとわかると思います。入力をちょっと変えれば大丈夫なん
ですが。

経験的にこういうときは以下のどちらかをそのときの気分で使うのです
が、どちらが良いでしょうか? また、もっと良い手段はありますか?

(1) initial を使うときは default は nil にする

(let ((default-directory "~/TEMP/"))
  (read-file-name "そのままリターン: " "~/TEMP/" nil nil "foo")
  (car file-name-history))


(2) 無理やり書き換える

(let ((foo "foo")
      (default-directory "~/TEMP/")
      (dir "~/TEMP/"))
  (read-file-name "そのままリターン: " dir foo nil foo)
  (setcar file-name-history (concat dir foo))
  (car file-name-history))

(1) の方が素直だな。

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)