[Mew-dist 13921] Re: mew-dir-list2

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2000年 8月 24日 (木) 12:38:00 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [Mew-dist 13920] Re: mew-dir-list2
Message-ID: <20000824.120420.82038906.kazu at example.com>
Date: Thu, 24 Aug 2000 12:05:04 +0900

kazu> ちょっとばたばたしておりまして、きちんと考えていませんが、脊髄で反応し
kazu> ます。
kazu> 
kazu> > UNIX + XEmacs でも試したのですが、ほぼ Meadow と同等の時間差が生
kazu> > じました(約 5 倍速い!!)。ただし、directory ではない symlink が存
kazu> > 在するとエラーになるので、以下のように directory-p にした方が良
kazu> > いと思います。
kazu> 
kazu> mew-file-chase-links でシンボリックリンクの実体を得ているつもりですが、
kazu> 本当にエラーになりますか?

『directory ではないシンボリックリンク』という表現は不正確でした。
うまく説明できないので、例をあげると、

白井> # 例: もう一つの Mew で mail を書いていると
白井> #   /home/shirai/Mail/draft:
白井> #   49 Aug 23 17:45 .#1 -> shirai at example.com:962767257
白井> # をたどってエラーになったなど。

というリンク(Emacs の lock用?)があると、

Opening directory: No such file or directory, /home/shirai/Mail/draft/.#1/

というエラーになりました。

kazu> file-directory-p に変えることは、やぶさかではありませんが、念のため確
kazu> 認です。

(directory-files "~/Mail/draft")
=> ("#1#" "." ".#1" ".." ".mew-cache" ".mew-touch" "1" "1~" "mime")

と、".#1" は含まれていて、

(mew-file-chase-links (expand-file-name "~/Mail/draft/.1#"))
 => "/home/shirai/Mail/draft/.1#"

(file-regular-p (expand-file-name "~/Mail/draft/.1#")) => nil

(file-directory-p (expand-file-name "~/Mail/draft/.1#")) => nil

となるので、再帰的の条件を regular-p から directory-p に変更すれ
ば大丈夫なのでした。

# メールを書いているのが Emacs 20.7 で、実験したのが XEmacs 21.2.35

kazu> (defun mew-dir-list2 (dir)

OK.

-- 
白井秀行@相変わらず目黒



Mew-dist メーリングリストの案内