[mew-dist 22445] Mew 3.1 の virtual mode の動作

SHIGENO Kazutaka shigeno at example.com
2002年 12月 6日 (金) 20:24:36 JST


重野です。

Mew 3.1 + emacs-20.7 の virtual mode で / を押すと、
エラーが発生するようです。

下記修正で直りましたが、これで良いですか。

--- mew-virtual.el-	Mon Nov 11 18:07:47 2002
+++ mew-virtual.el	Fri Dec  6 20:04:45 2002
@@ -55,7 +55,7 @@
 execute 'mew-summary-virtual-with-external'. Otherwise, 
 'mew-summary-virtual-with-internal' is called."
   (interactive "P")
-  (if (not (mew-summary-or-virtual-p))
+  (if (not (mew-summary-or-thread-p))
       (message "This command cannot be used in this mode")
     (if ext
 	(if mew-summary-virtual-with-external-function


あと、virtual mode で x を押すと "Move to a physical folder first" と
言われますが、virtual mode を頻繁に使ってるとやはり不便に感じます。

thread mode での x と同様に、元のフォルダに戻って、
"Now in +inbox. Type 'x' again" などと表示出来ないでしょうか。

戻り先のフォルダ名は、例えば virtual mode 側が "*+inbox*" なら
前後の * を取ったもの、"*+mew-dist,+mew-int*" のような複数の場合は
移動しない or 最初のフォルダ(上の場合 +mew-dist)に移動する、
という動作でどうでしょう。

フォルダを移動した後、更に x (mew-summary-exec) を実行するように
設定出来ると嬉しいです。2 回 x を押さなくて済みます。

以下は、試しに書いてみた前後の * を取ったフォルダに移動する修正です。

--- mew-func.el-	Mon Nov 18 19:16:50 2002
+++ mew-func.el	Fri Dec  6 05:47:09 2002
@@ -507,6 +507,9 @@
 (defsubst mew-folder-string (folder)
   (substring folder 1))
 
+(defsubst mew-virtual-string (folder)
+  (substring folder 1 -1))
+
 (defsubst mew-string-to-local (folder)
   (concat mew-folder-local folder))
 
@@ -514,6 +517,9 @@
 
 (defsubst mew-folder-to-virtual (folder)
   (concat mew-folder-virtual folder mew-folder-virtual))
+
+(defsubst mew-virtual-to-folder (folder)
+  (mew-virtual-string folder))
 
 (defsubst mew-folder-to-thread (folder)
   (concat mew-folder-virtual folder))

--- mew-exec.el-	Wed Dec  4 22:14:42 2002
+++ mew-exec.el	Fri Dec  6 20:03:48 2002
@@ -255,10 +255,10 @@
       (sit-for 0)
       (mew-summary-exec-remote beg end))
      ((mew-virtual-p)
-      (if (not (mew-thread-p))
-	  (message "Move to a physical folder first")
 	(let* ((bnm (mew-summary-folder-name 'ext))
-	       (fld (mew-thread-to-folder bnm))
+	       (fld (if (mew-thread-p)
+			(mew-thread-to-folder bnm)
+		      (mew-virtual-to-folder bnm)))
 	       (msg (mew-summary-message-number)))
 	  (if (not (and fld (get-buffer fld)))
 	      (message "No physical folder")
@@ -269,7 +269,7 @@
 	    (message "Now in %s. Type '%s' again"
 		     fld
 		     (substitute-command-keys
-		      "\\<mew-summary-mode-map>\\[mew-summary-exec]"))))))
+		      "\\<mew-summary-mode-map>\\[mew-summary-exec]")))))
      (t
       (message "Refiling and deleting...")
       (sit-for 0)



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