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