[Mew-dist 13920] Re: mew-dir-list2
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2000年 8月 24日 (木) 12:05:04 JST
ちょっとばたばたしておりまして、きちんと考えていませんが、脊髄で反応し
ます。
From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
Subject: [Mew-dist 13918] Re: mew-dir-list2
> tknakaga> (directory-files "." nil "^[^0-9]+")
> tknakaga> では「数字で始まるディレクトリは使わない」のような。
> tknakaga> (directory-files "." nil "[^0-9]")
> tknakaga> だけで良いんじゃないでしょうか。
>
> の対策をしてから実行しました。
これは、[^.0-9] にして、2 つの delete を削りましょう。
> UNIX + XEmacs でも試したのですが、ほぼ Meadow と同等の時間差が生
> じました(約 5 倍速い!!)。ただし、directory ではない symlink が存
> 在するとエラーになるので、以下のように directory-p にした方が良
> いと思います。
mew-file-chase-links でシンボリックリンクの実体を得ているつもりですが、
本当にエラーになりますか?
file-directory-p に変えることは、やぶさかではありませんが、念のため確
認です。
(defun mew-dir-list2 (dir)
(let ((default-directory (expand-file-name dir default-directory))
file dirent dirs ent subdirs)
(setq dirent (directory-files "." nil "[^.0-9]")) ;; MUST sort
(while dirent
(setq file (car dirent))
(setq ent (mew-file-chase-links file))
(setq dirent (cdr dirent))
(if (file-directory-p ent)
(progn
(setq dirs (cons file dirs))
(setq subdirs (mew-dir-list2 file))
(if subdirs (setq dirs (cons subdirs dirs))))))
(nreverse dirs)))
--かず@北京
Mew-dist メーリングリストの案内