[Mew-dist 04242] mew-folder-list()
OKUNISHI Fujikazu
fuji0924 at example.com
1998年 3月 19日 (木) 23:23:58 JST
が OS/2 であまり速くない(impath よりちょっとマシ)件ですが、funcall
して戴けないでしょうか?
--- mew-os2.el.orig Tue Mar 11 06:19:14 1997
+++ mew-os2.el Thu Mar 19 22:55:54 1998
@@ -5,11 +5,11 @@
;; Author: OKUNISHI Fujikazu <fuji0924 at example.com>
;; Kazu Yamamoto <Kazu at example.com>
;; Created: Dec 18, 1996
-;; Revised: Mar 1, 1998
+;; Revised: Mar 19, 1998
;;; Code
-(defconst mew-os2/version "mew-os2.el v0.19")
+(defconst mew-os2/version "mew-os2.el v0.20")
(defvar mew-os2-load-hook nil
"*Hook called after mew-os2 has been loaded.")
@@ -28,10 +28,8 @@
47 772 5892 49 58 0 0 14 772 49 22] . [1 4 14 775 22])))
(if (not (boundp '*ctext*dos))
(make-coding-system
-;; '*ctext*dos 2
'*ctext* 2 ;; xxx
?X "Coding-system used in X as Compound Text Encoding."
-;; 2 ;; xxx '*ctext*dos only
t ;; xxx '*ctext*unix, '*ctext*dos, '*ctext*mac, too
(list lc-ascii lc-ltn1 lc-invalid lc-invalid
nil 'ascii-eol 'ascii-cntl)))
@@ -354,6 +352,31 @@
(set-buffer-modified-p nil) ;; xxx
))
)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; fasten mew-folder-list() w/ REXX
+(defvar mew-prog-rxfolders "RxFolders.cmd")
+
+(eval-after-load "mew-func"
+ '(if (mew-which mew-prog-rxfolders exec-path)
+ (setq mew-folder-list-function 'mew-os2/folders-list)))
+
+(defun mew-os2/folders-list (prefix)
+ (let (folders-list folder
+ (path (cond
+ ((string-match "+" prefix) mew-mail-path)
+ ((string-match "=" prefix) mew-news-path))) )
+ (mew-set-buffer-tmp)
+ (call-process mew-prog-rxfolders nil t nil path)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (forward-line 1)
+ (if (looking-at ".+$")
+ (progn
+ (setq folder (concat prefix
+ (mew-buffer-substring (match-beginning 0) (match-end 0))))
+ (setq folders-list (cons folder folders-list)) )))
+ folders-list))
;;; End
(provide 'mew-os2)
--- mew-vars.el.orig Fri Mar 13 22:36:12 1998
+++ mew-vars.el Thu Mar 19 22:40:12 1998
@@ -347,6 +347,11 @@
If 'right, displayed at the right size of the default toolbar.
Otherwise, not displayed.")
+
+;; Low level
+(defvar mew-folder-list-function 'mew-folder-list)
+
+
;;
;; Summary mode
;;
--- mew.el.orig Fri Mar 13 22:44:52 1998
+++ mew.el Thu Mar 19 22:42:30 1998
@@ -429,8 +429,8 @@
(insert-file-contents file))
(t
(mapcar (lambda (x) (insert x "\n"))
- (nconc (mew-folder-list "+")
- (mew-folder-list "=")))
+ (nconc (funcall mew-folder-list-function "+")
+ (funcall mew-folder-list-function "=")))
(if mew-use-folders-file-p
(write-region (point-min) (point-max) file nil 'no-msg)))
)
で、肝心の REXX はインストーラで面倒みます。で、00oses は不要です。
;; やっぱり REXX 外部関数を叩くのが一番速いです(^_^;
--ふ
Mew-dist メーリングリストの案内