[Mew-dist 05049] Re: mew-1.93b39

OKUNISHI Fujikazu fuji0924 at example.com
1998年 6月 11日 (木) 23:10:06 JST


;; XEmacs/mule, Emacs20.2 にかまけてて、他に何も手をつけられてません(^_^;

>>> [Mew-dist : No.05044] にて

> (3) 仮想フォルダの移動パッチを b39 用に作成してもらますか? > 奥西さん

では、単に作り直しただけですが、Prom-Mew を使わない素の Mew では所望の
動作をしてくれています(まだオリジナルの変更内容を確認できてません)。
問題があるようでしたらご指摘ください。

改竄内容:
1. 補完対象となるように mew-folder-alist に追加する
2. 作法通り C-c C-q で抜けた時には mew-folder-alist から削除する
3. うっかり C-x k で抜けた時には残ってしまうので、goto-folder する時に
   バッファが存在しなければ mew-folder-alist から消す

ですが、++foo を仮想フォルダに予約する、という約束が前提となりますので、
info に「`$MAIL/+foo' なディレクトリは掘らないでね」と書いておくべきか
もしれません(`=-%' もそうですが)。

なので、以前のパッチにはコメントつきで埋め込んでいた mew-folder-to-dir()
へのパッチは、抜いておきます。refile で指定しないでください。

-------------- next part --------------
--- mew-func.el.orig	Tue Jun  9 07:56:14 1998
+++ mew-func.el	Thu Jun 11 21:59:08 1998
@@ -261,6 +261,10 @@
   (string-match "^%" folder)
   )
 
+(defun mew-folder-virtualp (folder)
+  (string-match "^+\\+" folder) ;; or "^\\+\\+"
+  )
+
 (defun mew-folder-to-dir (folder)
   (if (string-match "^[+=]" folder)
       (substring folder 1 nil)
--- mew-summary.el.orig	Thu Jun 11 03:06:26 1998
+++ mew-summary.el	Thu Jun 11 22:27:00 1998
@@ -522,6 +522,14 @@
     (cond
      ((mew-folder-newsp folder)
       (mew-summary-goto-folder-subr folder arg))
+     ((mew-folder-virtualp folder)
+      (if (get-buffer folder)
+	  (progn
+	    (mew-summary-goto-folder-subr folder arg)
+	    (mew-virtual-mode))
+        (message "No such virtual folder: %s" folder)
+        (setq mew-folder-alist
+	      (delq (assoc folder mew-folder-alist) mew-folder-alist))))
      ((mew-folder-imapp folder)
       (if (or (file-directory-p dir)
 	      (and (y-or-n-p
--- mew-virtual.el.orig	Tue Jun  9 08:33:54 1998
+++ mew-virtual.el	Thu Jun 11 22:28:56 1998
@@ -183,6 +183,8 @@
   (mew-virtual-highlight-setup)
   (mew-highlight-cursor-line)
   (run-hooks 'mew-virtual-mode-hook)
+  (if (not (mew-assoc-case-equal folder mew-folder-alist 0))
+      (setq mew-folder-alist (cons (list folder nil) mew-folder-alist)))
   )
 
 (defun mew-virtual-folder-message ()
--- mew.el.orig	Thu Jun 11 03:06:28 1998
+++ mew.el	Thu Jun 11 22:31:56 1998
@@ -554,10 +554,12 @@
 (defun mew-kill-buffer (&optional buf)
   "Erase the current mode(buffer)."
   (interactive)
-  (if buf
-      (if (get-buffer buf) (kill-buffer buf))
-    (kill-buffer (current-buffer)))
-  )
+  (let* ((buf (if buf buf (current-buffer)))
+	 (bname (buffer-name buf)))
+    (if (eq major-mode 'mew-virtual-mode)
+	(setq mew-folder-alist
+	      (delq (assoc bname mew-folder-alist) mew-folder-alist)))
+    (if (get-buffer buf) (kill-buffer buf))))
 
 (defun mew-summary-quit ()
   "Quit Mew. All buffers of Mew are erased."
-------------- next part --------------
;; Prom-Mew な場合は困るので、そっちも改竄してしまいました(^_^;
;; ベースは 1.92.10 です。
-------------- next part --------------
--- prom-mew.el.orig	Thu Jun  4 19:20:58 1998
+++ prom-mew.el	Thu Jun 11 22:42:08 1998
@@ -894,6 +894,14 @@
       (setq dir (mew-expand-folder folder))
       (cond ((mew-folder-newsp folder)
 	     (prom-summary-goto-folder-subr folder range arg))
+	    ((mew-folder-virtualp folder)
+	     (if (get-buffer folder)
+		 (progn
+		   (mew-summary-goto-folder-subr folder arg)
+		   (mew-virtual-mode))
+	       (message "No such virtual folder: %s" folder)
+	       (setq mew-folder-alist
+		     (delq (assoc folder mew-folder-alist) mew-folder-alist))))
 	    ((mew-folder-imapp folder)
 	     (if (or (file-directory-p dir)
 		     (and (y-or-n-p
-------------- next part --------------
--ふ@人種3(謎)


Mew-dist メーリングリストの案内