From 780c8f7f0975ad6a959a4b10457a3b64a1def377 Mon Sep 17 00:00:00 2001 From: teranisi Date: Wed, 26 Dec 2001 04:14:32 +0000 Subject: [PATCH] Synch up with main trunk. --- ChangeLog | 9 ++++ Makefile | 3 ++ NEWS | 4 ++ NEWS.ja | 4 ++ README.ja | 8 ++-- WL-MK | 20 +++++++++ doc/wl-ja.texi | 6 +-- doc/wl.texi | 4 +- elmo/ChangeLog | 45 ++++++++++++++++++++ elmo/elmo-archive.el | 11 ++--- elmo/elmo-imap4.el | 3 +- elmo/elmo-msgdb.el | 18 +++++--- elmo/elmo-multi.el | 9 +--- elmo/elmo-nmz.el | 47 +++++++++++---------- elmo/elmo-nntp.el | 41 +++++++++--------- elmo/elmo-pop3.el | 5 ++- elmo/elmo-shimbun.el | 3 +- elmo/elmo-util.el | 48 ++++++++++++++++----- elmo/elmo.el | 115 +++++++++++++++++++++++++++----------------------- wl/ChangeLog | 9 ++++ wl/wl-draft.el | 1 - 21 files changed, 274 insertions(+), 139 deletions(-) diff --git a/ChangeLog b/ChangeLog index dd581cf..488dbf3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2001-12-26 Yuuichi Teranishi + + * NEWS, NEWS.ja: Added description about + `elmo-enable-disconnected-operation'. + + * WL-MK (update-version): New function. + + * Makefile (update-version): Added. + 2001-12-18 Yuuichi Teranishi * samples/ja/dot.wl,samples/en/dot.wl (my-wl-summary-subject-func-ml): diff --git a/Makefile b/Makefile index 57c1aef..68e7a7a 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,9 @@ check: test: $(EMACS) $(FLAGS) -l WL-MK -f test-wl $(LISPDIR) $(PIXMAPDIR) +update-version: + $(EMACS) $(FLAGS) -l WL-MK -f update-version $(LISPDIR) $(PIXMAPDIR) + install-elc: $(EMACS) $(FLAGS) -l WL-MK -f install-wl-package $(LISPDIR) $(PIXMAPDIR) diff --git a/NEWS b/NEWS index f8b1f96..d5328ec 100644 --- a/NEWS +++ b/NEWS @@ -77,6 +77,10 @@ Wanderlust NEWS -- User-visible changes in Wanderlust. elmo-cache-directory (e.g. for whom put symbolic link for ~/.elmo/cache on NFS environment). +** Default value of elmo-enable-disconnected-operation is now `t'. + When the relevant messages are cached, you can do some operations + even in the off-line state. + * Version 2.6.1 is basically a bug fix version of 2.6.0. ** Fixed a problem that Emacs 21 causes `Recursive load...' error. diff --git a/NEWS.ja b/NEWS.ja index 306920b..a1e8493 100644 --- a/NEWS.ja +++ b/NEWS.ja @@ -78,6 +78,10 @@ Wanderlust NEWS (日本語版) -- User-visible changes in Wanderlust. 方は、elmo-cache-directory を設定することによってキャッシュだけ を全く別のディレクトリにできます。 +** elmo-enable-disconnected-operation のデフォルト値が t になりました。 + オフライン状態でもメッセージがキャッシュされていれば、ある程度の + メッセージ操作が可能です。 + * 2.6.1 は 2.6.0 の修正版です。 ** Emacs 21 で Recursive load... と出る不具合が修正されました。 diff --git a/README.ja b/README.ja index 04fdede..eed39d2 100644 --- a/README.ja +++ b/README.ja @@ -36,7 +36,7 @@ Install: Web Page: - Wanderlust の Official Web ページの URL は以下の通りです。 + Wanderlust 公式 Web ページの URL は以下の通りです。 http://www.gohome.org/wl/ @@ -70,7 +70,7 @@ CVS: % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout wanderlust - 安定版の枝から Wanderlust 取り出す場合は、以下のようにしてください。 + 安定版の枝から Wanderlust を取り出す場合は、以下の様にしてください。 % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout -r wl-2_8 wanderlust @@ -78,14 +78,14 @@ CVS: http://cvs.m17n.org/cgi-bin/viewcvs/wanderlust/ - CVS の commit log をメールで受け取りたいときは、以下のアドレスに空の + CVS の commit log をメールで受け取りたい方は、次のアドレスに空の メールを送ってください。 cvs-info-help@cvs.m17n.org Development: - CVS に基づいた開発に参加したいときは、 + CVS に基づいた開発に参加したい方は、 cvs@cvs.m17n.org diff --git a/WL-MK b/WL-MK index c4f181c..008697e 100644 --- a/WL-MK +++ b/WL-MK @@ -141,6 +141,26 @@ (config-wl-pixmap-dir) (princ "\n")) +(defun update-version () + "Update version number of documents." + (config-wl-package) + (load-file "elmo/elmo-version.el") + (let ((version (mapconcat + 'number-to-string + (product-version (product-find 'elmo-version)) + "."))) + (princ (concat "Update version number to " version "\n")) + ;; generate version.tex + (with-temp-buffer + (insert "\\def\\versionnumber{" version "}\n") + (write-region (point-min) (point-max) (expand-file-name + "version.tex" "doc"))) + ;; generate version.texi + (with-temp-buffer + (insert "@set VERSION " version "\n") + (write-region (point-min) (point-max) (expand-file-name + "version.texi" "doc"))))) + (defun test-wl () "Run test suite for developer." (config-wl-package) diff --git a/doc/wl-ja.texi b/doc/wl-ja.texi index d18897d..b6b0360 100644 --- a/doc/wl-ja.texi +++ b/doc/wl-ja.texi @@ -2565,9 +2565,9 @@ News フォルダでは article 番号、IMAP フォルダでは UID、M @item $ @kbd{$} キーを押すと、@samp{$} マークが付きます。このマークは Emacs を終了 しても保存されるため、あとで返事を書きたい場合など、覚えておきたい重要な -メッセージに付けておくと便利です。@samp{$} の付いたメッセージは、ニュー -ス記事やサーバ上の IMAP フォルダのメッセージが expire されるなどして消え -た場合も残ります。 +メッセージに付けておくと便利です。@samp{$} の付いたメッセージは、 +(実際のメッセージが消されたとしても) @samp{'mark} フォルダで閲覧できます。 + @item なし 既読メッセージにはマークが存在しません。 @end table diff --git a/doc/wl.texi b/doc/wl.texi index a8ea5a2..f10259d 100644 --- a/doc/wl.texi +++ b/doc/wl.texi @@ -2568,8 +2568,8 @@ It is important message. You can put @samp{$} mark by typing @kbd{$} key (if already exists, the mark is deleted). It is convenient to put this mark on the messages to remember (If you want to remember to write a reply for the message, for example) because this mark remains after -you exited Emacs. Messages with the @samp{$} mark remains in the folder -even the message itself is deleted in the actual folder. +you exited Emacs. Messages with the @samp{$} mark can be reviewed in the +@{'mark} folder even the message itself is deleted in the actual folder. @item None If the message is read and cached (or local message),there are no diff --git a/elmo/ChangeLog b/elmo/ChangeLog index 7556b39..f4b32e8 100644 --- a/elmo/ChangeLog +++ b/elmo/ChangeLog @@ -1,3 +1,48 @@ +2001-12-26 Yuuichi Teranishi + + * elmo.el (elmo-folder-synchronize): Delete important messages too. + + * elmo-util.el (elmo-buffer-field-primitive-condition-match): Fixed + `since'; Fix timezone. + + * elmo-msgdb.el (elmo-msgdb-search-internal-primitive): Ditto. + + * elmo-nntp.el (elmo-nntp-search-primitive): Likewise. + +2001-12-25 Hiroya Murata + + * elmo.el (elmo-message-fetch-with-cache-process): Rewrite. + +2001-12-23 Hiroya Murata + + * elmo.el (elmo-generic-folder-append-messages): Make + fetch-strategy with `use-cache' as 'maybe. Check return value of + `elmo-message-fetch'. + (elmo-message-fetch): Return return value of + `elmo-message-fetch-with-cache-process'. + (elmo-message-fetch-with-cache-process): Return non-nil if + fetching was succeed. Load cache when fetching was failed and + fetch-strategy-use-cache is 'maybe. + + * elmo-util.el (elmo-file-cache-load): New function. + + * elmo-multi.el (elmo-message-use-cache-p): Remove duplicated + defun. + + * elmo-archive.el (elmo-archive-message-fetch-internal): Return + non-nil if fetching was succeed. + + * elmo-imap4.el (elmo-imap4-message-fetch): Likewise. + + * elmo-nmz.el (elmo-map-message-fetch): Likewise. + + * elmo-nntp.el (elmo-nntp-read-body): Likewise. + (elmo-message-fetch-with-cache-process): Likwise. + + * elmo-pop3.el (elmo-pop3-read-body): Likewise. + + * elmo-shimbun.el (elmo-map-message-fetch): Likewise. + 2001-12-23 Yuuichi Teranishi * elmo.el (elmo-folder-delete): Delete msgdb path. diff --git a/elmo/elmo-archive.el b/elmo/elmo-archive.el index f55cfe4..fe7a2b8 100644 --- a/elmo/elmo-archive.el +++ b/elmo/elmo-archive.el @@ -551,11 +551,12 @@ TYPE specifies the archiver's symbol." (method (elmo-archive-get-method type 'cat)) (args (list arc (elmo-concat-path prefix (int-to-string number))))) - (when (file-exists-p arc) - (and - (as-binary-process - (elmo-archive-call-method method args t)) - (elmo-delete-cr-buffer))))) + (and (file-exists-p arc) + (as-binary-process + (elmo-archive-call-method method args t)) + (progn + (elmo-delete-cr-buffer) + t)))) (luna-define-method elmo-message-fetch-internal ((folder elmo-archive-folder) number strategy diff --git a/elmo/elmo-imap4.el b/elmo/elmo-imap4.el index 8d14bf7..2e7e1bd 100644 --- a/elmo/elmo-imap4.el +++ b/elmo/elmo-imap4.el @@ -2530,7 +2530,8 @@ If optional argument REMOVE is non-nil, remove FLAG." response 'fetch))) (with-current-buffer outbuf (erase-buffer) - (insert response))))) + (insert response) + t)))) (luna-define-method elmo-message-fetch-plugged ((folder elmo-imap4-folder) number strategy diff --git a/elmo/elmo-msgdb.el b/elmo/elmo-msgdb.el index 0ca535d..a1068dc 100644 --- a/elmo/elmo-msgdb.el +++ b/elmo/elmo-msgdb.el @@ -309,12 +309,18 @@ header separator." (elmo-msgdb-overview-entity-get-cc entity)))) ((or (string= key "since") (string= key "before")) - (let ((res (string< (timezone-make-date-sortable - (elmo-msgdb-overview-entity-get-date entity)) - (elmo-date-make-sortable-string - (elmo-date-get-datevec - (elmo-filter-value condition)))))) - (setq result (if (string= key "before") res (not res))))) + (let ((field-date (elmo-date-make-sortable-string + (timezone-fix-time + (elmo-msgdb-overview-entity-get-date entity) + (current-time-zone) nil))) + (specified-date + (elmo-date-make-sortable-string + (elmo-date-get-datevec + (elmo-filter-value condition))))) + (setq result (if (string= key "since") + (or (string= specified-date field-date) + (string< specified-date field-date)) + (string< field-date specified-date))))) ((member key elmo-msgdb-extra-fields) (let ((extval (elmo-msgdb-overview-entity-get-extra-field entity key))) (if (stringp extval) diff --git a/elmo/elmo-multi.el b/elmo/elmo-multi.el index 546dd60..800cf34 100644 --- a/elmo/elmo-multi.el +++ b/elmo/elmo-multi.el @@ -104,13 +104,6 @@ (setq children (cdr children))) match)) -(luna-define-method elmo-message-use-cache-p ((folder elmo-multi-folder) - number) - (elmo-message-use-cache-p - (nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1) - (elmo-multi-folder-children-internal folder)) - (% number (elmo-multi-folder-divide-number-internal folder)))) - (luna-define-method elmo-message-folder ((folder elmo-multi-folder) number) (nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1) @@ -564,7 +557,7 @@ (luna-define-method elmo-message-file-name ((folder elmo-multi-folder) number) (let ((pair (elmo-multi-real-folder-number folder number))) (elmo-message-file-name (car pair) (cdr pair)))) - + (luna-define-method elmo-folder-plugged-p ((folder elmo-multi-folder)) (let ((flds (elmo-multi-folder-children-internal folder))) (catch 'plugged diff --git a/elmo/elmo-nmz.el b/elmo/elmo-nmz.el index cda62cb..5fb36b9 100644 --- a/elmo/elmo-nmz.el +++ b/elmo/elmo-nmz.el @@ -189,29 +189,30 @@ If the value is a list, all elements are used as index paths for namazu." location strategy &optional section unseen) (when (file-exists-p location) - (insert-file-contents-as-binary location) - (unless (or (std11-field-body "To") - (std11-field-body "Cc") - (std11-field-body "Subject")) - (let (charset guess uid) - (erase-buffer) - (set-buffer-multibyte t) - (insert-file-contents location) - (setq charset (detect-mime-charset-region (point-min) - (point-max))) - (goto-char (point-min)) - (setq guess (mime-find-file-type location)) - (setq uid (nth 2 (file-attributes location))) - (insert "From: " (concat (user-full-name uid) - " <"(user-login-name uid) "@" - (system-name) ">") "\n") - (insert "Subject: " location "\n") - (insert "Content-Type: " - (concat (nth 0 guess) "/" (nth 1 guess)) - "; charset=" (upcase (symbol-name charset)) - "\nMIME-Version: 1.0\n\n") - (encode-mime-charset-region (point-min) (point-max) charset) - (set-buffer-multibyte nil))))) + (prog1 + (insert-file-contents-as-binary location) + (unless (or (std11-field-body "To") + (std11-field-body "Cc") + (std11-field-body "Subject")) + (let (charset guess uid) + (erase-buffer) + (set-buffer-multibyte t) + (insert-file-contents location) + (setq charset (detect-mime-charset-region (point-min) + (point-max))) + (goto-char (point-min)) + (setq guess (mime-find-file-type location)) + (setq uid (nth 2 (file-attributes location))) + (insert "From: " (concat (user-full-name uid) + " <"(user-login-name uid) "@" + (system-name) ">") "\n") + (insert "Subject: " location "\n") + (insert "Content-Type: " + (concat (nth 0 guess) "/" (nth 1 guess)) + "; charset=" (upcase (symbol-name charset)) + "\nMIME-Version: 1.0\n\n") + (encode-mime-charset-region (point-min) (point-max) charset) + (set-buffer-multibyte nil)))))) (luna-define-method elmo-map-folder-list-message-locations ((folder elmo-nmz-folder)) diff --git a/elmo/elmo-nntp.el b/elmo/elmo-nntp.el index 4bbf723..33a4991 100644 --- a/elmo/elmo-nntp.el +++ b/elmo/elmo-nntp.el @@ -389,7 +389,8 @@ Don't cache if nil.") (with-current-buffer outbuf (erase-buffer) (insert-buffer-substring (elmo-network-session-buffer session) - start (- end 3)))))) + start (- end 3)))) + t)) (defun elmo-nntp-select-group (session group &optional force) (let (response) @@ -963,12 +964,14 @@ Don't cache if nil.") (with-current-buffer (elmo-network-session-buffer session) (std11-field-body "Newsgroups"))))) -(luna-define-method elmo-message-fetch-with-cache-process :after +(luna-define-method elmo-message-fetch-with-cache-process :around ((folder elmo-nntp-folder) number strategy &optional section unread) - (elmo-nntp-setup-crosspost-buffer folder number) - (unless unread - (elmo-nntp-folder-update-crosspost-message-alist - folder (list number)))) + (when (luna-call-next-method) + (elmo-nntp-setup-crosspost-buffer folder number) + (unless unread + (elmo-nntp-folder-update-crosspost-message-alist + folder (list number))) + t)) (luna-define-method elmo-message-fetch-plugged ((folder elmo-nntp-folder) number strategy @@ -1124,27 +1127,27 @@ Returns a list of cons cells like (NUMBER . VALUE)" numbers)) ((or (string= "since" search-key) (string= "before" search-key)) - (let* ((key-date (elmo-date-get-datevec (elmo-filter-value condition))) - (key-datestr (elmo-date-make-sortable-string key-date)) + (let* ((specified-date (elmo-date-make-sortable-string + (elmo-date-get-datevec (elmo-filter-value + condition)))) (since (string= "since" search-key)) - result) + field-date result) (if (eq (elmo-filter-type condition) 'unmatch) (setq since (not since))) (setq result (delq nil (mapcar (lambda (pair) + (setq field-date + (elmo-date-make-sortable-string + (timezone-fix-time + (cdr pair) + (current-time-zone) nil))) (if (if since - (string< key-datestr - (elmo-date-make-sortable-string - (timezone-fix-time - (cdr pair) - (current-time-zone) nil))) - (not (string< key-datestr - (elmo-date-make-sortable-string - (timezone-fix-time - (cdr pair) - (current-time-zone) nil))))) + (or (string= specified-date field-date) + (string< specified-date field-date)) + (string< field-date + specified-date)) (car pair))) (elmo-nntp-retrieve-field spec "date" from-msgs)))) (if from-msgs diff --git a/elmo/elmo-pop3.el b/elmo/elmo-pop3.el index 94caee7..c1e63bd 100644 --- a/elmo/elmo-pop3.el +++ b/elmo/elmo-pop3.el @@ -825,7 +825,8 @@ Debug information is inserted in the buffer \"*POP3 DEBUG*\"") (setq end (point)) (with-current-buffer outbuf (erase-buffer) - (insert-buffer-substring (process-buffer process) start (- end 3)))))) + (insert-buffer-substring (process-buffer process) start (- end 3))) + t))) (luna-define-method elmo-folder-open-internal ((folder elmo-pop3-folder)) (if (and (not elmo-inhibit-number-mapping) @@ -872,7 +873,7 @@ Debug information is inserted in the buffer \"*POP3 DEBUG*\"") (when (null (setq response (elmo-pop3-read-response process t))) (error "Fetching message failed")) - (setq response (elmo-pop3-read-body process outbuf))) + (setq response (elmo-pop3-read-body process outbuf))) (setq elmo-pop3-total-size nil)) (unless elmo-inhibit-display-retrieval-progress (elmo-display-progress diff --git a/elmo/elmo-shimbun.el b/elmo/elmo-shimbun.el index 06eab4b..c11e5e6 100644 --- a/elmo/elmo-shimbun.el +++ b/elmo/elmo-shimbun.el @@ -431,7 +431,8 @@ update overview when message is fetched." (when (setq shimbun-id (elmo-shimbun-header-extra-field header "x-shimbun-id")) (goto-char (point-min)) - (insert (format "X-Shimbun-Id: %s\n" shimbun-id)))) + (insert (format "X-Shimbun-Id: %s\n" shimbun-id))) + t) (error "Unplugged"))) (luna-define-method elmo-message-encache :around ((folder diff --git a/elmo/elmo-util.el b/elmo/elmo-util.el index b6dc41d..d84d544 100644 --- a/elmo/elmo-util.el +++ b/elmo/elmo-util.el @@ -816,22 +816,30 @@ Return value is a cons cell of (STRUCTURE . REST)" (length (memq number number-list))) (string-to-int (elmo-filter-value condition))))) ((string= (elmo-filter-key condition) "since") - (let ((date (elmo-date-get-datevec (elmo-filter-value condition)))) + (let* ((date (elmo-date-get-datevec (elmo-filter-value condition))) + (field-date (elmo-date-make-sortable-string + (timezone-fix-time + (std11-field-body "date") + (current-time-zone) nil))) + (specified-date (timezone-make-sortable-date + (aref date 0) + (aref date 1) + (aref date 2) + (timezone-make-time-string + (aref date 3) + (aref date 4) + (aref date 5))))) (setq result - (string< - (timezone-make-sortable-date (aref date 0) - (aref date 1) - (aref date 2) - (timezone-make-time-string - (aref date 3) - (aref date 4) - (aref date 5))) - (timezone-make-date-sortable (std11-field-body "date")))))) + (or (string= field-date specified-date) + (string< specified-date field-date))))) ((string= (elmo-filter-key condition) "before") (let ((date (elmo-date-get-datevec (elmo-filter-value condition)))) (setq result (string< - (timezone-make-date-sortable (std11-field-body "date")) + (timezone-make-date-sortable + (timezone-fix-time + (std11-field-body "date") + (current-time-zone) nil)) (timezone-make-sortable-date (aref date 0) (aref date 1) (aref date 2) @@ -1610,6 +1618,24 @@ Return t if cache is saved successfully." ;; ignore error (error))) +(defun elmo-file-cache-load (cache-path section) + "Load cache on PATH into the current buffer. +Return t if cache is loaded successfully." + (condition-case nil + (let (cache-file) + (when (and cache-path + (if (elmo-cache-path-section-p cache-path) + section + (null section)) + (setq cache-file (elmo-file-cache-expand-path + cache-path + section)) + (file-exists-p cache-file)) + (insert-file-contents-as-binary cache-file) + t)) + ;; igore error + (error))) + (defun elmo-cache-path-section-p (path) "Return non-nil when PATH is `section' cache path." (file-directory-p path)) diff --git a/elmo/elmo.el b/elmo/elmo.el index ceb29d8..642834e 100644 --- a/elmo/elmo.el +++ b/elmo/elmo.el @@ -889,29 +889,35 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-MARK-ALIST).") (while numbers (setq failure nil) (condition-case nil - (progn - (elmo-message-fetch - src-folder (car numbers) - (if (and (not (elmo-folder-plugged-p src-folder)) - elmo-enable-disconnected-operation - (setq cache (elmo-file-cache-get - (elmo-message-field - src-folder (car numbers) - 'message-id))) - (eq (elmo-file-cache-status cache) 'entire)) - (elmo-make-fetch-strategy - 'entire t nil (elmo-file-cache-path cache)) - (elmo-make-fetch-strategy 'entire t)) - nil (current-buffer) - 'unread) - (unless (eq (buffer-size) 0) - (setq failure (not - (elmo-folder-append-buffer - folder - (setq unseen (member (elmo-message-mark - src-folder (car numbers)) - unread-marks)) - (if same-number (car numbers))))))) + (setq cache (elmo-file-cache-get + (elmo-message-field src-folder + (car numbers) + 'message-id)) + failure + (not + (and + (elmo-message-fetch + src-folder (car numbers) + (if (elmo-folder-plugged-p src-folder) + (elmo-make-fetch-strategy + 'entire 'maybe nil + (and cache (elmo-file-cache-path cache))) + (or (and elmo-enable-disconnected-operation + cache + (eq (elmo-file-cache-status cache) 'entire) + (elmo-make-fetch-strategy + 'entire t nil + (elmo-file-cache-path cache))) + (error "Unplugged"))) + nil (current-buffer) + 'unread) + (> (buffer-size) 0) + (elmo-folder-append-buffer + folder + (setq unseen (member (elmo-message-mark + src-folder (car numbers)) + unread-marks)) + (if same-number (car numbers)))))) (error (setq failure t))) ;; FETCH & APPEND finished (unless failure @@ -1158,8 +1164,7 @@ FIELD is a symbol of the field." (with-current-buffer outbuf (erase-buffer) (elmo-message-fetch-with-cache-process folder number - strategy section unread) - t) + strategy section unread)) (with-temp-buffer (elmo-message-fetch-with-cache-process folder number strategy section unread) @@ -1169,24 +1174,37 @@ FIELD is a symbol of the field." number strategy &optional section unread) - (let (cache-path cache-file) - (if (and (elmo-fetch-strategy-use-cache strategy) - (setq cache-path (elmo-fetch-strategy-cache-path strategy)) - (setq cache-file (elmo-file-cache-expand-path - cache-path - section)) - (file-exists-p cache-file) - (or (not (elmo-cache-path-section-p cache-file)) - (not (eq (elmo-fetch-strategy-entireness strategy) 'entire)))) - (insert-file-contents-as-binary cache-file) - (elmo-message-fetch-internal folder number strategy section unread) - (elmo-delete-cr-buffer) - (when (and (> (buffer-size) 0) - (elmo-fetch-strategy-save-cache strategy) - (elmo-fetch-strategy-cache-path strategy)) - (elmo-file-cache-save - (elmo-fetch-strategy-cache-path strategy) - section))))) + (let ((cache-path (elmo-fetch-strategy-cache-path strategy)) + (method-priorities + (cond ((eq (elmo-fetch-strategy-use-cache strategy) 'meybe) + '(entity cache)) + ((elmo-fetch-strategy-use-cache strategy) + '(cache entity)) + (t + '(entity)))) + result err) + (while (and method-priorities + (null result)) + (setq result + (case (car method-priorities) + (cache + (elmo-file-cache-load cache-path section)) + (entity + (when (and (condition-case error + (elmo-message-fetch-internal folder number + strategy + section + unread) + (error (setq err error) nil)) + (> (buffer-size) 0)) + (elmo-delete-cr-buffer) + (when (and (elmo-fetch-strategy-save-cache strategy) + cache-path) + (elmo-file-cache-save cache-path section)) + t))) + method-priorities (cdr method-priorities))) + (or result + (and err (signal (car err) (cdr err)))))) (luna-define-method elmo-folder-clear ((folder elmo-folder) &optional keep-killed) @@ -1260,16 +1278,7 @@ If update process is interrupted, return nil." (length new-list))) (setq diff-2 (elmo-list-diff (car diff) new-list))) (elmo-msgdb-append-to-killed-list folder (car diff-2))) - ;; Don't delete important marked messages. - (setq delete-list - (if (eq (elmo-folder-type-internal folder) 'mark) - (cadr diff) - (elmo-delete-if - (lambda (x) - (and (setq mark (cadr (assq x mark-alist))) - (string= mark important-mark))) - ;; delete message list - (cadr diff)))) + (setq delete-list (cadr diff)) (if (or (equal diff '(nil nil)) (equal diff '(nil)) (and (eq (length (car diff)) 0) diff --git a/wl/ChangeLog b/wl/ChangeLog index d0d79fc..06007ef 100644 --- a/wl/ChangeLog +++ b/wl/ChangeLog @@ -1,3 +1,12 @@ +2001-12-24 Yuuichi Teranishi + + * wl-draft.el (wl-draft-hide): Removed `interactive'. + (Pointed out by YAMASHITA Junji ) + +2001-12-23 Hiroya Murata + + * Version number is increased to 2.9.2. + 2001-12-21 Katsumi Yamaoka * wl-draft.el (wl-draft-elide-region): New user command. diff --git a/wl/wl-draft.el b/wl/wl-draft.el index 7477196..ac95b99 100644 --- a/wl/wl-draft.el +++ b/wl/wl-draft.el @@ -665,7 +665,6 @@ Reply to author if WITH-ARG is non-nil." (defun wl-draft-hide (editing-buffer) "Hide the editing draft buffer if possible." - (interactive) (when (and editing-buffer (buffer-live-p editing-buffer)) (set-buffer editing-buffer) -- 1.7.10.4