[Mew-dist 10546] Re: one more IMAP support.
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
1999年 9月 1日 (水) 13:57:33 JST
From: Masaki SHIGEMORI <shige at example.com> さん曰く
Subject: [Mew-dist 10544] Re: one more IMAP support.
Message-ID: <37CCA15B204.425ASHIGE at example.com>
Date: Wed, 1 Sep 1999 12:45:36 +0900
shirai> IMAP(nntp)で、折角 mew-temp-dir の下に message のコピーを作る機
shirai> 能を入れたので、すべて、そのコピーを基準に動作するようにしました。
shirai>
shirai> # 一回読んだ message は server に取りに行かなくて済みます。:-)
重森> すばらしいです!
重森> やっぱり IMAP は caching しないと ;-)
喜んでいただけて幸いです。
重森> が、^^;
重森> ちょっと気になるのは、summary で 'n' とかで新しいメッセージを読むと
重森> Caching a message ... done となった後カーソルが 'n' する前の位置に戻っ
重森> てしまうということです。
重森さんの文面通りの現象は発生しませんでした。
これって、caching しているときにカーソルが(次の message とかに)
バタツクという話でしょうか? もしそうならあきらめています。:-p
重森> (環境は、Mew 1.94pre2 + 白井さんのパッチ + IM126 です。)
ごめんなさい。一か所、虫さんがいました。パッチをつけておきます。
重森> それから、cache 先は /tmp でなく ~/Mail/@imapserver#user/ のなかの対応
重森> フォルダの中にして、Mew が終わっても削除しないというほうが良い気がする
重森> のですが、いかがでしょうか。そうしないと IMAP4 の、POP3 の上位互換と
重森> して使える、という謳い文句通りになりませんし ^^;
最初にこちらを考えたのですが、cache した message の正当性(*1) の
判定がわからないため、あきらめました。
(*1) 例えば、%#mh/ な folder で他から pack や refile をした、と
か。このあたりの判定方法が考え付きませんでした。
重森> IMAP⊃POP という謳い文句通りにするには、あと、
重森> 1) inc の際に指定した IMAP フォルダの内容を(本文を含め)
重森> とってきて cache できるようにする
重森> 2) summary で 's' したときにメッセージ本文も
重森> cache できるようにする
う〜ん、やっぱり cache するのって時間がかかるから自動的にやるの
はいやだなぁ。パッチにはしませんが、こんなのではどうでしょうか?
summary で "G" を押すと、全部の message、"C-uG" だと region 内の
message を cache します。region-end がちょっとずれるような気もす
るのですが。。。
;; ----------- IMAP(nntp) messages cache support ----------
(add-hook 'mew-summary-mode-hook
'(lambda ()
(define-key mew-summary-mode-map "G" 'mew-summary-remote-get)))
(defun mew-summary-remote-get (&optional arg)
"Get remote messages to local."
(interactive "P")
(if arg
(mew-summary-remote-get-region (region-beginning) (region-end))
(mew-summary-remote-get-region (point-min) (point-max))))
(defun mew-summary-remote-get-region (beg end)
(interactive "r")
(mew-summary-only
(save-excursion
(let ((regex "^[ ]*\\([1-9][0-9]*\\)")
(fld (mew-summary-folder-name))
msgs)
(if (not (mew-folder-remotep fld))
(message "Can't execute here.")
(goto-char beg)
(while (re-search-forward regex end t)
(setq msgs (cons (mew-match 1) msgs)))
(if (null msgs)
(message "No message caching.")
(setq msgs (nreverse msgs))
(message "Caching all messages ... ")
(mapcar (function
(lambda (msg)
(mew-summary-im-start
mew-prog-imcat fld nil msg nil nil mew-cs-text-for-read 'noinsert)))
msgs)
(message "Caching all messages ... done")))))))
;; ----------- IMAP(nntp) messages cache support ----------
重森> # 「気がする」というのが多いのは、自分自身がまだ興味本位でしか IMAP
重森> # を使っていないからです ^^;;
"興味本位" っていうのは私も一緒です。全然、実用的には IMAP を使っ
ていませんから。というわけで、私からも
重森> # 実用なさっている方の意見はいかがでしょうか?
どうでしょうか? ^^;;;
-------------- next part --------------
--- mew-func.el.orig Wed Sep 1 09:09:52 1999
+++ mew-func.el Wed Sep 1 13:28:27 1999
@@ -404,7 +404,7 @@
"Delete cached messages for remote FOLDER."
(let (dir files file)
(if (mew-folder-newsp folder)
- (setq dir (expand-file-name subdir mew-temp-dir))
+ (setq dir (expand-file-name (substring folder 1) mew-temp-dir))
(setq dir (mew-imap-folder-dir folder mew-temp-dir)))
(if (and (file-exists-p dir) (file-directory-p dir))
(progn
-------------- next part --------------
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内