[Mew-dist 04974] goto Virtual folder
OKUNISHI Fujikazu
fuji0924 at example.com
1998年 6月 2日 (火) 12:44:05 JST
仮想フォルダから他のフォルダ("+=-%")へは行けるのですが、"+=-%" から
仮想フォルダへ行くことも、仮想フォルダから仮想フォルダへ移動することも
できません。
Virtual mode を多用する人間にとって苦痛以外のナニモノでもないし、将来
的に Virtual mode (みたいなの)が多用されることになるらしいので、ちょっ
といじってみました。
;; 本当は bufferp() を使いたかったんだけど、(bufferp "++virtual") では
;; だめなんですよね。この Lisp Object は正しくはどう表現するんでしょう
;; か?
--ふ
-------------- next part --------------
--- mew-func.el.orig Sun May 31 07:34:10 1998
+++ mew-func.el Tue Jun 2 12:31:18 1998
@@ -261,7 +261,13 @@
(string-match "^%" folder)
)
+(defun mew-folder-virtualp (folder)
+ (string-match "^+\\+" folder) ;; or "^\\+\\+"
+ )
+
(defun mew-folder-to-dir (folder)
+; (if (and (string-match "^[+=]" folder)
+; (not (string-match "^+\\+" folder)))
(if (string-match "^[+=]" folder)
(substring folder 1 nil)
folder)
--- mew-summary.el.orig Mon Jun 1 23:03:42 1998
+++ mew-summary.el Tue Jun 2 12:31:18 1998
@@ -445,6 +445,14 @@
(dir (mew-expand-folder folder)))
(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 Sun May 31 07:34:50 1998
+++ mew-virtual.el Tue Jun 2 12:31:18 1998
@@ -199,6 +199,9 @@
(mew-virtual-highlight-setup)
(mew-highlight-cursor-line)
(run-hooks 'mew-virtual-mode-hook)
+ (if (setq ret (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 Mon Jun 1 22:54:06 1998
+++ mew.el Tue Jun 2 12:31:18 1998
@@ -552,13 +552,15 @@
(run-hooks 'mew-suspend-hook)
)
+
(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))))
+ (if (eq major-mode 'mew-virtual-mode)
+ (setq mew-folder-alist
+ (delq (assoc (buffer-name buf) 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."
Mew-dist メーリングリストの案内