[Mew-Win32 00317] Re: C-uZ
YAMAGUCHI, Shuhei
yamagus at example.com
1998年 3月 2日 (月) 01:04:02 JST
やまぐち@ねっとらぴゅたの住人、です。
>>> In article <1998Feb2629188151782kose at example.com>,
>>> 小関 吉則(KOSEKI Yoshinori) <kose at example.com> writes:
白井> # 以前ちょっと考えたのですが……
白井> # やっぱり、elispのディレクトリ再帰はどう考えても遅そうですね。
kose>
kose> そうでもないと思いますよ。
kose> elispってperl scriptよりずっと速いし、Cで書くといっても外部
kose> コマンドとして呼び出すことのオーバヘッドもあると思うし。
kose>
kose> ;; 客観的な数値といわれると困るけど。
Assignment和訳途中の息抜き(^^;)に、elispでMewのフォルダを探索する関数
を作ってみました。
関数の構成など、少し整理が足りないので、mew.elに反映させてはないですけ
ど、Mew起動後に*scratch*から(mew-folder-list)するなどして味わってみて
ください。
あ、mew-use-file-attributesの値は、Meadowではt、Mule for Win32では必ず
nilに設定してください。
#だれかMule for Win32で試してみてください。
#しばらく前にWin95を再インストールして以来、Mule for Win32にMew入れて
#ないんです。 ^^;
でわでわ
--
yamagus at example.com / やまぐち@ねっとらぴゅたの住人
yamagus at example.com / 山口 修平
PGP-Fingerprint: 25 0F 6F E1 57 AD 56 08 3A BC D0 9B 48 AF 31 7A
-------------- next part --------------
(defvar mew-use-file-attributes t
;;; (< 2 (nth 1 (file-attributes (mew-expand-folder "+"))))
"If t, 2nd element of a returned list from file-attribute,
as known to be LINK COUNT, works.
Otherwise, never use file-attributes for making folder list,
and any system can make list safety, but too slow.
For Mule for Win32 and OS/2 Mule users:
This might be set to nil.")
(defun mew-folder-list ()
(append (mew-folder-list0 "+")
(mew-folder-list0 "=")))
(defun mew-folder-list0 (folder)
(let (curdir relpath abspath dirent folders subprefix subfolder)
(setq curdir (mew-expand-folder folder))
(setq dirent (directory-files curdir))
(if (string-match "^[+=]$" folder)
(setq subprefix folder)
(setq subprefix (concat folder "/")))
(mapcar
'(lambda (relpath)
(setq abspath (expand-file-name relpath curdir))
(and (file-directory-p abspath)
(not (string-match "^\\.\\.?$" relpath))
(setq subfolder (concat subprefix relpath))
(setq folders (append folders (list subfolder)))
(if mew-use-file-attributes
(< 2 (nth 1 (file-attributes abspath)))
t)
(setq folders (append folders (mew-folder-list0 subfolder)))))
dirent)
folders))
Mew-win32 メーリングリストの案内