[Mew-dist 13571] Re: b45
Shun-ichi GOTO
gotoh at example.com
2000年 7月 9日 (日) 23:29:53 JST
>>>>> at Sat, 8 Jul 2000 20:32:57 +0900
>>>>> kazu == Kazu Yamamoto (山本和彦) <kazu at example.com> said,
kazu> だいぶん安全になった b45 をリリースします。
POP で取得したメッセージを補完するメッセージ番号を決める際に、毎回
mew-folder-new-message を行なうと、巨大な+inboxを持つ人(私)は1メッセージ
取得のたびに時間がかかります。なのでpop-info の中に次のメッセージ番号を
保存しておくpatch を作りました。
ベクタを14 elements として 14 番目に next という数値要素を追加。
mew-pop-get-next(), mew-pop-set-next() マクロを追加。
mew-pop-command-dele() にてこれらを使用。
です。
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
-------------- next part --------------
Index: mew-pop.el
===================================================================
RCS file: /Master/mew-1.95/mew-pop.el,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 mew-pop.el
--- mew-pop.el 2000/07/08 04:49:50 1.1.1.3
+++ mew-pop.el 2000/07/09 14:25:51
@@ -19,7 +19,7 @@
(` (progn
(if (or (not (intern-soft (, name)))
(not (boundp (intern (, name)))))
- (set (intern (, name)) (make-vector 13 nil)))
+ (set (intern (, name)) (make-vector 14 nil)))
(symbol-value (intern-soft (, name))))))
(defmacro mew-pop-get-status (name)
@@ -58,6 +58,8 @@
(defmacro mew-pop-get-top (name)
(` (aref (mew-pop-info (, name)) 12)))
+(defmacro mew-pop-get-next (name)
+ (` (aref (mew-pop-info (, name)) 13)))
(defmacro mew-pop-set-status (name status)
(` (aset (mew-pop-info (, name)) 0 (, status))))
@@ -95,6 +97,9 @@
(defmacro mew-pop-set-top (name top)
(` (aset (mew-pop-info (, name)) 12 (, top))))
+(defmacro mew-pop-set-next (name num)
+ (` (aset (mew-pop-info (, name)) 13 (, num))))
+
;;
(defconst mew-pop-process-prefix "mew-pop-process-")
@@ -171,6 +176,7 @@
(mew-pop-set-size pnm (mew-pop-size case))
(mew-pop-set-delete pnm (mew-pop-delete case))
(mew-pop-set-top pnm nil)
+ (mew-pop-set-next pnm nil)
;;
(set-process-sentinel process 'mew-pop-sentinel)
(set-process-filter process 'mew-pop-filter)
@@ -243,6 +249,7 @@
(mew-pop-set-size pnm nil)
(mew-pop-set-delete pnm nil)
(mew-pop-set-top pnm nil)
+ (mew-pop-set-next pnm nil)
(if (processp sshpro) (delete-process sshpro))
(mew-pop-set-ssh-process pnm nil)
(run-hooks 'mew-pop-flush-hook)))
@@ -448,6 +455,7 @@
(msg (car msgs))
(num (car msg))
(truncated (mew-pop-get-top pnm))
+ (next (mew-pop-get-next pnm))
vec line file fnum)
;; deleting +OK
(goto-char (point-min))
@@ -468,8 +476,14 @@
(while (re-search-forward "^\\." nil t)
(delete-char -1)
(forward-line))
- (setq file (mew-folder-new-message inbox))
- (setq fnum (file-name-nondirectory file))
+ (if next
+ (setq fnum (number-to-string next)
+ file (mew-expand-folder inbox fnum))
+ (setq file (mew-folder-new-message inbox)
+ fnum (file-name-nondirectory file)
+ next (string-to-number fnum)))
+ (setq next (1+ next))
+ (mew-pop-set-next pnm next)
(mew-frwlet
mew-cs-dummy mew-cs-text-for-write
(write-region (point-min) (point-max) file nil 'no-msg))
Mew-dist メーリングリストの案内