[Mew-dist 10328] Re: imap環境でimmvできない

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
1999年 8月 23日 (月) 10:21:43 JST


白井です。

From: Motonori Nakamura <motonori at example.com> さん曰く
Subject: [Mew-dist 10315] Re: imap環境でimmvできない
Message-ID: <19990821170443Y.motonori at example.com>
Date: Sat, 21 Aug 1999 17:04:44 +0900

shirai> [shirai at example.com:~/]% immv --verbose=on --src=%#mh/tmp --dst=+inbox 1
shirai> immv: unknown authentication protocol: tmp
shirai> immv: unknown authentication protocol: tmp
shirai> immv: invalid imap spec: %/:

motonori> 根本的に、文字 / が folder 名に使われないものとして実装していたので、
motonori> そこが引っ掛かっています。さーて、どうしましょうね。
motonori> 例えば、//auth のように // で区切れば folder 名と衝突することは
motonori> ないでしょうか?

う〜ん、私はもともと IMAP4 の知識が全く無いためわかりません。識
者の方々に判断をお任せします。(__)

これだけでは申し訳ないので、パッチを少し。

1. mew-use-immv => nil で、destination folder に remote な
 folder が入っていて、local な folder から refile すると elisp
 で refile してしまいます。

2. IMAP4(nntp) で ',' がおかしいという件で debug してたら、一か
 所 coding-system の設定で良くない場所を見つけました。だけど、こ
 れだけでは動きませんです。(今週の課題……かぁ)
 
-------------- next part --------------
--- mew-mark.el.orig	Mon Aug 23 09:51:04 1999
+++ mew-mark.el	Mon Aug 23 10:07:44 1999
@@ -626,8 +626,14 @@
   (let* ((dsts (car dsts-msgs)) ;; (+foo +bar)
 	 (msgs (cdr dsts-msgs)) ;; (1 2 3)
 	 (myselfp (mew-folder-member src dsts))
+	 (dsts-tmp dsts)
 	 msgs- msg srcfile dstfile dst num)
-    (if (or mew-use-immv (mew-folder-remotep src))
+    (if (or mew-use-immv (mew-folder-remotep src)
+	    (catch 'remote
+	      (while dsts-tmp
+		(if (mew-folder-remotep (car dsts-tmp))
+		    (throw 'remote t))
+		(setq dsts-tmp (cdr dsts-tmp)))))
 	(mew-summary-im-start mew-prog-immv src dsts msgs t)
       (if myselfp
 	  ;; msg stays in the src folder with the same number
-------------- next part --------------
--- mew-func.el.orig	Fri Aug 20 14:15:44 1999
+++ mew-func.el	Mon Aug 23 09:50:31 1999
@@ -249,7 +249,7 @@
 (defmacro mew-insert-message (fld msg rcs size)
   (` (if (or (mew-folder-newsp (, fld)) (mew-folder-imapp (, fld)))
 	 (mew-piolet (, rcs) mew-cs-dummy
-	   (mew-summary-im-start mew-prog-imcat (, fld) nil (, msg) nil))
+	   (mew-summary-im-start mew-prog-imcat (, fld) nil (, msg) nil nil (, rcs)))
        (mew-frwlet (, rcs) mew-cs-dummy
 	 (insert-file-contents (mew-expand-folder (, fld) (, msg))
 			       nil 0 (, size))))))
@@ -674,7 +674,7 @@
 
 (defconst mew-im-boundary-begin "^---BEGIN-IMGET-MESSAGE---\n")
 
-(defun mew-summary-im-start (imprg src dsts msgs discard &optional arg)
+(defun mew-summary-im-start (imprg src dsts msgs discard &optional arg rcs)
   (let ((process-connection-type mew-connection-type2)
 	(imarg (if arg (cons arg mew-prog-im-arg) mew-prog-im-arg)))
     ;; dsts can be nil. disappears thanks to append
@@ -688,8 +688,11 @@
 					    imprg (current-buffer) imprg
 					    (format "--src=%s" src)
 					    (append imarg dsts msgs)))
-    (mew-set-process-cs mew-summary-buffer-process
-			mew-cs-text-for-read mew-cs-dummy)
+    (if rcs
+	(mew-set-process-cs mew-summary-buffer-process
+			    rcs mew-cs-dummy)
+      (mew-set-process-cs mew-summary-buffer-process
+			  mew-cs-text-for-read mew-cs-dummy))
     (if discard
 	(set-process-filter mew-summary-buffer-process 'mew-summary-im-filter1)
       (set-process-filter mew-summary-buffer-process 'mew-summary-im-filter2))


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