[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 メーリングリストの案内