From: dmaus Date: Sun, 5 Jun 2011 12:08:41 +0000 (+0000) Subject: Merged trunk to branch elmo-imap4-compliance X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=576817fa7d629bf0cf23b25628e78142f4052a08;p=elisp%2Fwanderlust.git Merged trunk to branch elmo-imap4-compliance --- diff --git a/ChangeLog b/ChangeLog index 22bc186..de7bf5a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-02-01 Tetsurou Okazaki + + * WL-MK (wl-scan-path): New function. + (wl-scan-source): Use `wl-scan-path'. + (wl-scan-icons): New function. + (uninstall-wl-icons): Use `wl-scan-icons'. + Check existence of `PIXMAPDIR'. + 2010-07-19 TAKAHASHI Kaoru * INSTALL: Update recommended version of APEL. diff --git a/NEWS b/NEWS index 695d3ec..863c00f 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ Wanderlust NEWS -- User-visible changes in Wanderlust. * Changes in 2.16.0 from 2.14.x +** Put spam mark on the message registered as spam. + +** Remove spam mark from the message registered as non-spam. + ** Added support for ESEARCH feature (RFC4731). ** New option `elmo-imap4-set-seen-flag-explicitly'. diff --git a/NEWS.ja b/NEWS.ja index 966f40a..3ae8a4c 100644 --- a/NEWS.ja +++ b/NEWS.ja @@ -2,6 +2,10 @@ Wanderlust NEWS (日本語版) -- User-visible changes in Wanderlust. * 2.14.x から 2.16.0 への変更点 +** spam として登録したメッセージに spam マークを付けます。 + +** non-spam として登録したメッセージから spam マークを取り除きます。 + ** ESEARCH (RFC4731) がサポートされました。 ** 新規オプション elmo-imap4-set-seen-flag-explicitly が追加されました。 diff --git a/WL-MK b/WL-MK index 88f8dc8..0086a93 100644 --- a/WL-MK +++ b/WL-MK @@ -210,16 +210,25 @@ (setq files (cdr files))) (lunit suite))) -(defun wl-scan-source (path) - (let (ret) - (mapc - (lambda (x) - (mapc (lambda (y) - (setq ret (append (list y (concat y "c")) ret))) - (directory-files x nil "\\(.+\\)\\.el$" t))) - path) - ret)) +(defun wl-scan-path (path scanner) + (let ((dirs (if (listp path) + path + (list path)))) + (apply 'append (mapcar scanner dirs)))) +(defun wl-scan-source (path) + (wl-scan-path path + (lambda (x) + (apply 'append + (mapcar (lambda (y) + (list y (concat y "c"))) + (directory-files x nil "\\(.+\\)\\.el$" t)))))) + +(defun wl-scan-icons (path) + (wl-scan-path path + (lambda (x) + (let ((case-fold-search t)) + (directory-files x nil "\\.img$\\|\\.x[bp]m$"))))) (defun wl-uninstall (objs path) ;(message (mapconcat 'identity objs " ")) @@ -266,17 +275,10 @@ (install-files icons ICONDIR PIXMAPDIR nil 'overwrite))) (defun uninstall-wl-icons () - (let* ((case-fold-search t) - (icons (directory-files PIXMAPDIR t "\\.img$\\|\\.x[bp]m$")) - icon) - (while icons - (setq icon (car icons) - icons (cdr icons)) - (if (and (file-exists-p icon) - (file-writable-p icon)) - (progn - (princ (format "%s was uninstalled.\n" icon)) - (delete-file icon)))))) + (if (not (file-directory-p PIXMAPDIR)) + () + (wl-uninstall (wl-scan-icons PIXMAPDIR) + PIXMAPDIR))) (defun install-wl-package () (compile-wl-package) diff --git a/doc/wl-ja.texi b/doc/wl-ja.texi index 5e0f1ad..58d7a3b 100644 --- a/doc/wl-ja.texi +++ b/doc/wl-ja.texi @@ -7113,22 +7113,22 @@ spam かどうかのテストを行います。spam と判定されたメッセージには、sp @item k s @kindex k s (Summary) @findex wl-summary-register-as-spam -カーソル行のメッセージを spam として登録します。 +カーソル行のメッセージを spam として登録し spam マークを付けます。 @item k S @kindex k S (Summary) @findex wl-summary-register-as-spam-all -フォルダ内の全てのメッセージを spam として登録します。 +フォルダ内の全てのメッセージを spam として登録し spam マークを付けます。 @item k n @kindex k n (Summary) @findex wl-summary-register-as-good -カーソル行のメッセージを non-spam として登録します。 +カーソル行のメッセージを non-spam として登録し spam マークを取り除きます。 @item k N @kindex k N (Summary) @findex wl-summary-register-as-good-all -フォルダ内の全てのメッセージを non-spam として登録します。 +フォルダ内の全てのメッセージを non-spam として登録し spam マークを取り除きます。 @item r k m @kindex r k m (Summary) @@ -7144,12 +7144,12 @@ spam かどうかのテストを行います。spam と判定されたメッセージには、sp @item r k s @kindex r k s (Summary) @findex wl-summary-register-as-spam-region -指定リージョンにあるメッセージを spam として登録します。 +指定リージョンにあるメッセージを spam として登録し spam マークを付けます。 @item r k n @kindex r k n (Summary) @findex wl-summary-register-as-good-region -指定リージョンにあるメッセージを non-spam として登録します。 +指定リージョンにあるメッセージを non-spam として登録し spam マークを取り除きます。 @item t k m @kindex t k m (Summary) @@ -7170,14 +7170,16 @@ prefix argument つきならばカーソル行があるメッセージを含むスレッド全てに @item t k s @kindex t k s (Summary) @findex wl-thread-register-as-spam -カーソル行があるメッセージを先頭とするスレッドのメッセージを spam として登録します。 +カーソル行があるメッセージを先頭とするスレッドのメッセージを spam として登録し +spam マークを付けます。 prefix argument つきならばカーソル行があるメッセージを含むスレッド全てに 適用します。 @item t k n @kindex t k n (Summary) @findex wl-thread-register-as-good -カーソル行があるメッセージを先頭とするスレッドのメッセージを non-spam として登録します。 +カーソル行があるメッセージを先頭とするスレッドのメッセージを non-spam として登録し +spam マークを取り除きます。 prefix argument つきならばカーソル行があるメッセージを含むスレッド全てに 適用します。 @@ -7190,12 +7192,12 @@ prefix argument つきならばカーソル行があるメッセージを含むスレッド全てに @item m s @kindex m s (Summary) @findex wl-summary-target-mark-register-as-spam -まとめ処理用マーク @samp{*} のついたメッセージを spam として登録します。 +まとめ処理用マーク @samp{*} のついたメッセージを spam として登録し spam マークを付けます。 @item m n @kindex m n (Summary) @findex wl-summary-target-mark-register-as-good -まとめ処理用マーク @samp{*} のついたメッセージを non-spam として登録しま +まとめ処理用マーク @samp{*} のついたメッセージを non-spam として登録し spam マークを取り除きます。 す。 @end table diff --git a/doc/wl.texi b/doc/wl.texi index a7997f6..52b5baf 100644 --- a/doc/wl.texi +++ b/doc/wl.texi @@ -7170,22 +7170,22 @@ argument, test all messages regardless of their marks. @item k s @kindex k s (Summary) @findex wl-summary-register-as-spam -Register current message as spam. +Register current message as spam and put spam mark. @item k S @kindex k S (Summary) @findex wl-summary-register-as-spam-all -Register all messages in the folder as spam. +Register all messages in the folder as spam and put spam mark. @item k n @kindex k n (Summary) @findex wl-summary-register-as-good -Register current message as non-spam. +Register current message as non-spam and remove spam mark. @item k N @kindex k N (Summary) @findex wl-summary-register-as-good-all -Register all messages in the folder as non-spam. +Register all messages in the folder as non-spam and remove spam mark. @item r k m @kindex r k m (Summary) @@ -7201,12 +7201,12 @@ Remove spam mark if judged as non-spam. @item r k s @kindex r k s (Summary) @findex wl-summary-register-as-spam-region -Register messages in the specified region as spam. +Register messages in the specified region as spam and put spam mark. @item r k n @kindex r k n (Summary) @findex wl-summary-register-as-good-region -Register messages in the specified region as non-spam. +Register messages in the specified region as non-spam and remove spam mark. @item t k m @kindex t k m (Summary) @@ -7224,13 +7224,15 @@ With prefix argument, it affects on the all messages in the thread tree. @item t k s @kindex t k s (Summary) @findex wl-thread-register-as-spam -Register messages which are the descendant of the current thread as spam. +Register messages which are the descendant of the current thread as spam +and put spam mark. With prefix argument, it affects on the all messages in the thread tree. @item t k n @kindex t k n (Summary) @findex wl-thread-register-as-good -Register messages which are the descendant of the current thread as non-spam. +Register messages which are the descendant of the current thread as non-spam +and remove spam mark. With prefix argument, it affects on the all messages in the thread tree. @item m k @@ -7241,12 +7243,12 @@ Put spam mark (@samp{s}) on messages with the target mark @samp{*}. @item m s @kindex m s (Summary) @findex wl-summary-target-mark-register-as-spam -Register messages with the target mark @samp{*} as spam. +Register messages with the target mark @samp{*} as spam and put spam mark. @item m n @kindex m n (Summary) @findex wl-summary-target-mark-register-as-good -Register messages with the target mark @samp{*} as non-spam. +Register messages with the target mark @samp{*} as non-spam and remove spam mark. @end table @subsection Customizable Variables diff --git a/elmo/ChangeLog b/elmo/ChangeLog index ebe1eef..b8fe321 100644 --- a/elmo/ChangeLog +++ b/elmo/ChangeLog @@ -1,3 +1,8 @@ +2011-06-03 David Maus + + * elmo-imap4.el (elmo-imap4-fetch-callback-1-subr): Don't mark + unread messages with important or answered flag read. + 2011-06-02 David Maus * elmo-date.el (elmo-time-make-imap-date-string): New @@ -8,6 +13,13 @@ 2011-05-29 David Maus + * elmo-imap4.el (elmo-network-authenticate-session): Always ask + for capabilities after login. + (elmo-imap4-parse-response): Remove superfluous third argument to + split-string. + +2011-05-29 David Maus + * elmo-maildir.el (elmo-folder-append-buffer): Return number of appended message. * elmo-localdir.el (elmo-folder-append-buffer): Dto. @@ -24,6 +36,50 @@ * elmo-archive.el (elmo-folder-append-buffer) (elmo-archive-folder-append-buffer): Dto. +2011-01-12 David Maus + + * elmo-nntp.el (elmo-nntp-folder-msgdb-create): Remove accidental + rebinding of new message db symbol. + +2010-11-02 Kazuhiro Ito + + * elmo-pop3.el (elmo-folder-open-internal): Don't load location + map if it is already loaded. + +2010-10-31 David Maus + + * elmo-map.el (elmo-folder-open-internal): Don't load location map + if it is already loaded. + + * elmo.el (elmo-folder-open-internal-p) + (elmo-folder-move-messages): Method removed. + * elmo-filter.el (elmo-folder-open-internal-p): Dto. + * elmo-map.el (elmo-folder-open-internal-p): Dto. + * elmo-multi.el (elmo-folder-open-internal-p): Dto. + * elmo-pipe.el (elmo-folder-open-internal-p): Dto. + * elmo-pop3.el (elmo-folder-open-internal-p): Dto. + * elmo-shimbun.el (elmo-folder-open-internal-p): Dto. + +2010-10-24 David Maus + + * elmo-pop3.el (elmo-folder-open-internal-p): Define method for + this class. + * elmo-shimbun.el (elmo-folder-open-internal-p): Dto. + * elmo-multi.el (elmo-folder-open-internal-p): Fix invalid let + statement. + +2010-10-14 David Maus + + * elmo-multi.el (elmo-folder-open-internal-p): Evaluate symbol to + return state of child folders. + +2010-10-13 David Maus + + * elmo-multi.el (elmo-folder-open-internal-p): Start with t and + set to nil if one of the child folders is not open. + (elmo-folder-open-internal): Open child folders only if they are + not opened yet. + 2010-08-31 David Maus * elmo-imap4.el (elmo-folder-delete-messages-plugged): Use smarter @@ -1685,7 +1741,7 @@ 2005-02-17 ARISAWA Akihiro - * elmo-shimbun.el (elmo-folder-exists-p): Use `shimbun-group-p' + * elmo-shimbun.el (elmo-folder-exists-p): Use `shimbun-group-p' if available. 2005-02-18 Hiroya Murata @@ -2333,7 +2389,7 @@ * modb-entity.el (elmo-message-entity-handler): If CAR element of entity is `t', treat it as legacy entity. - + * elmo.el (elmo-message-flag-available-p): New generic function. (elmo-message-number): Ditto. (elmo-message-field): Use `elmo-msgdb-message-field'. @@ -2847,7 +2903,7 @@ warnings. * elmo-file.el: New file. - + * modb-standard.el (elmo-msgdb-list-flagged): Treat keyword flags. * elsp-sa.el (elmo-spam-spamassassin-max-messages-per-process): New @@ -3710,7 +3766,7 @@ elmo-msgdb-message-entity-number. (elmo-msgdb-append-entity): Ditto. (elmo-msgdb-create-message-entity-from-file): Remove. - (elmo-msgdb-create-message-entity-from-buffer): Use msgdb which + (elmo-msgdb-create-message-entity-from-buffer): Use msgdb which corresponds to the entity. (elmo-msgdb-message-entity-number): Do nothing currently. (elmo-msgdb-message-entity-field): Ditto. @@ -3736,7 +3792,7 @@ 2003-09-21 Hiroya Murata - * modb-standard.el (elmo-msgdb-create-message-entity-from-buffer): + * modb-standard.el (elmo-msgdb-create-message-entity-from-buffer): Fixed how to set extra field into entity. (elmo-msgdb-message-entity-set-field): Fixed mistake string for symbol. @@ -3835,7 +3891,7 @@ (elmo-map-folder-list-message-locations): elmo-message-entity-field. * elmo-sendlog.el (elmo-folder-msgdb-create): Use - elmo-msgdb-create-message-entity-from-file and + elmo-msgdb-create-message-entity-from-file and elmo-message-entity-field. * elmo-pop3.el (elmo-pop3-sort-msgdb-by-original-number): Use @@ -3872,7 +3928,7 @@ * elmo-map.el (elmo-folder-pack-numbers): Use elmo-message-entity-set-number. - * elmo-maildir.el (elmo-folder-msgdb-create): + * elmo-maildir.el (elmo-folder-msgdb-create): elmo-msgdb-create-message-entity-from-file instead of elmo-msgdb-create-overview-entity-from-file. @@ -3885,11 +3941,11 @@ elmo-messge-entity-field and elmo-message-entity-number. (elmo-imap4-fetch-callback-1): Call elmo-msgdb-create-message-entity-from-buffer instead of - elmo-msgdb-create-overview-from-buffer. + elmo-msgdb-create-overview-from-buffer. (elmo-folder-msgdb-create-plugged): Use elmo-messge-entity-field. (elmo-find-fetch-strategy): Likewise. - * elmo-flag.el (elmo-folder-msgdb-create): Call + * elmo-flag.el (elmo-folder-msgdb-create): Call elmo-localdir-msgdb-create-entity with argument msgdb. * elmo-dop.el (elmo-dop-msgdb): Use elmo-message-entity-number @@ -4165,7 +4221,7 @@ `elmo-msgdb-set-path'. * elmo-localdir.el (elmo-folder-pack-numbers): Ditto. - + * elmo-version.el (elmo-version): Up to 2.11.13. * elmo.el (elmo-generic-folder-commit): Don't load msgdb. @@ -4459,7 +4515,7 @@ 2003-08-05 Yuuichi Teranishi - * elmo-filter.el (elmo-folder-set-message-modified): Set + * elmo-filter.el (elmo-folder-set-message-modified): Set message-modified slot of itself if it does not require target msgdb. * elmo-mime.el (elmo-mime-message-display): Display message entirely @@ -4583,7 +4639,7 @@ 2002-05-05 David Smith - * elmo-imap4.el (elmo-imap4-folder-diff-plugged): + * elmo-imap4.el (elmo-imap4-folder-diff-plugged): Use SELECT when elmo-imap4-use-select-to-update-status is t. 2003-07-24 Hiroya Murata @@ -4628,7 +4684,7 @@ (elmo-folder-kill-messages): Ditto. (elmo-folder-synchronize): Use elmo-folder-kill-messages-before. - * elmo-imap4.el (elmo-folder-list-messages-plugged): + * elmo-imap4.el (elmo-folder-list-messages-plugged): Don't use elmo-msgdb-max-of-killed. It is harmful when messages are killed not by synchronize (e.g. scoring). @@ -4836,7 +4892,7 @@ 2003-03-25 Yuuichi Teranishi - * elmo.el (elmo-folder-append-buffer): Changed argument from unread + * elmo.el (elmo-folder-append-buffer): Changed argument from unread to flag. (All other related portions are changed.) (elmo-folder-msgdb-create): Likewise. (elmo-generic-folder-append-messages): Use flag-table instead of @@ -4987,7 +5043,7 @@ * elmo-msgdb.el: Moved global mark handling stuffs to elmo-util.el. * elmo-util.el: Moved global mark handling stuffs from elmo-msgdb.el. - + * elmo-util.el (elmo-file-cache-delete): Check whether the cache file is included in the global-mark or not. @@ -5637,7 +5693,7 @@ * elmo-multi.el (elmo-multi-folder-append-msgdb): Removed third argument for elmo-msgdb-append. - + * elmo-msgdb.el (elmo-load-msgdb): New function. (elmo-make-msgdb): Ditto. diff --git a/elmo/elmo-filter.el b/elmo/elmo-filter.el index 11b736d..70a32e1 100644 --- a/elmo/elmo-filter.el +++ b/elmo/elmo-filter.el @@ -156,9 +156,6 @@ (luna-define-method elmo-folder-open-internal ((folder elmo-filter-folder)) (elmo-folder-open-internal (elmo-filter-folder-target-internal folder))) -(luna-define-method elmo-folder-open-internal-p ((folder elmo-filter-folder)) - (elmo-folder-open-internal-p (elmo-filter-folder-target-internal folder))) - (luna-define-method elmo-folder-check ((folder elmo-filter-folder)) (when (elmo-filter-folder-require-msgdb-internal folder) (elmo-folder-synchronize (elmo-filter-folder-target-internal folder)))) diff --git a/elmo/elmo-imap4.el b/elmo/elmo-imap4.el index d040a61..bfdfb0c 100644 --- a/elmo/elmo-imap4.el +++ b/elmo/elmo-imap4.el @@ -977,12 +977,6 @@ If CHOP-LENGTH is not specified, message set is not chopped." (and (elmo-file-cache-exists-p msg-id) '(cached))) saved-flags)) - (when (and (or (memq 'important flag-list) - (memq 'answered flag-list)) - (memq 'unread flag-list)) - (setq elmo-imap4-seen-messages - (cons (elmo-message-entity-number entity) - elmo-imap4-seen-messages))) (elmo-msgdb-append-entity elmo-imap4-current-msgdb entity flag-list))) @@ -1192,15 +1186,15 @@ If CHOP-LENGTH is not specified, message set is not chopped." (if (sasl-step-data step) (elmo-base64-encode-string (sasl-step-data step) 'no-line-break) - ""))))))) + "")))))))) ;; Some servers return reduced capabilities when client asks for them ;; before login. It might be a good idea to ask them again, otherwise ;; we can miss some useful feature. - (elmo-imap4-session-set-capability-internal - session - (elmo-imap4-response-value - (elmo-imap4-send-command-wait session "capability") - 'capability))))))) + (elmo-imap4-session-set-capability-internal + session + (elmo-imap4-response-value + (elmo-imap4-send-command-wait session "capability") + 'capability)))))) (luna-define-method elmo-network-setup-session ((session elmo-imap4-session)) @@ -1477,7 +1471,7 @@ Return nil if no complete line has arrived." ")")))) (ESEARCH (list 'esearch - (cddr (split-string (buffer-substring (point) (point-max)) " " "\,")))) + (cddr (split-string (buffer-substring (point) (point-max)) " ")))) (STATUS (elmo-imap4-parse-status)) ;; Added (NAMESPACE (elmo-imap4-parse-namespace)) diff --git a/elmo/elmo-map.el b/elmo/elmo-map.el index 20c6f65..383124a 100644 --- a/elmo/elmo-map.el +++ b/elmo/elmo-map.el @@ -227,15 +227,13 @@ Return new location alist." (elmo-folder-set-msgdb-internal folder new-msgdb))) (luna-define-method elmo-folder-open-internal ((folder elmo-map-folder)) - (elmo-location-map-load folder (elmo-folder-msgdb-path folder)) + (unless (elmo-location-map-alist folder) + (elmo-location-map-load folder (elmo-folder-msgdb-path folder))) (when (elmo-folder-plugged-p folder) (elmo-location-map-update folder (elmo-map-folder-list-message-locations folder)))) -(luna-define-method elmo-folder-open-internal-p ((folder elmo-map-folder)) - (elmo-location-map-alist folder)) - (luna-define-method elmo-folder-commit :after ((folder elmo-map-folder)) (when (elmo-folder-persistent-p folder) (elmo-location-map-save folder (elmo-folder-msgdb-path folder)))) diff --git a/elmo/elmo-multi.el b/elmo/elmo-multi.el index 122a6df..2e52de3 100644 --- a/elmo/elmo-multi.el +++ b/elmo/elmo-multi.el @@ -123,11 +123,6 @@ (dolist (fld (elmo-multi-folder-children-internal folder)) (elmo-folder-open-internal fld))) -(luna-define-method elmo-folder-open-internal-p ((folder elmo-multi-folder)) - (let (open) - (dolist (fld (elmo-multi-folder-children-internal folder)) - (setq open (and open (elmo-folder-open-internal-p fld)))))) - (luna-define-method elmo-folder-check ((folder elmo-multi-folder)) (dolist (fld (elmo-multi-folder-children-internal folder)) (elmo-folder-check fld))) diff --git a/elmo/elmo-nntp.el b/elmo/elmo-nntp.el index 9e57d86..6a05ec0 100644 --- a/elmo/elmo-nntp.el +++ b/elmo/elmo-nntp.el @@ -766,7 +766,7 @@ Don't cache if nil.") (session (elmo-nntp-get-session folder)) (new-msgdb (elmo-make-msgdb)) beg-num end-num cur length - new-msgdb ov-str use-xover dir) + ov-str use-xover dir) (elmo-nntp-select-group session (elmo-nntp-folder-group-internal folder)) (when (setq use-xover (elmo-nntp-xover-p session)) diff --git a/elmo/elmo-pipe.el b/elmo/elmo-pipe.el index 2ae9626..f624d8a 100644 --- a/elmo/elmo-pipe.el +++ b/elmo/elmo-pipe.el @@ -180,9 +180,6 @@ (luna-define-method elmo-folder-open-internal ((folder elmo-pipe-folder)) (elmo-folder-open-internal (elmo-pipe-folder-dst-internal folder))) -(luna-define-method elmo-folder-open-internal-p ((folder elmo-pipe-folder)) - (elmo-folder-open-internal-p (elmo-pipe-folder-dst-internal folder))) - (luna-define-method elmo-folder-close-internal ((folder elmo-pipe-folder)) (elmo-folder-close-internal (elmo-pipe-folder-dst-internal folder))) diff --git a/elmo/elmo-pop3.el b/elmo/elmo-pop3.el index aff5d75..07555c6 100644 --- a/elmo/elmo-pop3.el +++ b/elmo/elmo-pop3.el @@ -786,8 +786,9 @@ until the login delay period has expired")) t))) (luna-define-method elmo-folder-open-internal ((folder elmo-pop3-folder)) - (when (elmo-pop3-folder-use-uidl folder) - (elmo-location-map-load folder (elmo-folder-msgdb-path folder)))) + (unless (elmo-location-map-alist folder) + (when (elmo-pop3-folder-use-uidl folder) + (elmo-location-map-load folder (elmo-folder-msgdb-path folder))))) (luna-define-method elmo-folder-commit :after ((folder elmo-pop3-folder)) (when (and (not elmo-inhibit-number-mapping) diff --git a/elmo/elmo.el b/elmo/elmo.el index 1a92c4d..348cf47 100644 --- a/elmo/elmo.el +++ b/elmo/elmo.el @@ -217,9 +217,6 @@ If optional LOAD-MSGDB is non-nil, msgdb is loaded. (luna-define-generic elmo-folder-open-internal (folder) "Open FOLDER (without loading saved folder status).") -(luna-define-generic elmo-folder-open-internal-p (folder) - "Return non-nil if FOLDER is opened internally.") - (luna-define-generic elmo-folder-check (folder) "Check the FOLDER to obtain newest information at the next list operation.") @@ -719,10 +716,6 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-FLAG-ALIST).") nil ; default is do nothing. ) -(luna-define-method elmo-folder-open-internal-p ((folder elmo-folder)) - t ; default is always opened internally - ) - (luna-define-method elmo-folder-check ((folder elmo-folder)) nil) ; default is noop. @@ -1198,8 +1191,7 @@ Returns a list of message numbers successfully appended." (error "move: %d is not writable" (elmo-folder-name-internal dst-folder))) (when messages - (unless (elmo-folder-open-internal-p src-folder) - (elmo-folder-open-internal src-folder)) + (elmo-folder-open-internal src-folder) (elmo-folder-open-internal dst-folder) (unless (setq succeeds (elmo-folder-append-messages dst-folder src-folder diff --git a/tests/ChangeLog b/tests/ChangeLog index f6adbaf..1919168 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,27 @@ +2011-05-30 TAKAHASHI Kaoru + + * test-wl-address.el: New file. + +2011-04-07 TAKAHASHI Kaoru + + * test-elmo-date.el: Add `lexical-binding' file variable. + * test-elmo-imap4.el: Ditto. + * test-elmo-localdir.el: Ditto. + * test-elmo-util.el: Ditto. + * test-rfc2368.el: Ditto. + * test-utf7.el: Ditto. + * test-wl-draft.el: Ditto. + * test-wl-util.el: Ditto. + +2011-04-06 TAKAHASHI Kaoru + + * test-dist.el: Add `lexical-binding' file variable. + (test-wl-modules-trailing-whitespace, test-elmo-modules-exists) + (test-elmo-modules-trailing-whitespace) + (test-util-modules-exists) + (test-util-modules-trailing-whitespace, test-wl-icon-exists): Fix + let style for `lexical-binding'. + 2010-08-31 TAKAHASHI Kaoru * test-dist.el (test-elmo-modules-trailing-whitespace) diff --git a/tests/test-dist.el b/tests/test-dist.el index aabfd03..5619f0b 100644 --- a/tests/test-dist.el +++ b/tests/test-dist.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'wl) (require 'cl) ; mapc @@ -5,100 +6,98 @@ (luna-define-class test-dist (lunit-test-case)) ;; WL-MODULES +(defvar test-dist-wl-lost-module-list nil) (luna-define-method test-wl-modules-exists ((case test-dist)) - (lunit-assert - (null - (let (filename lost) - (mapc - (lambda (module) - (setq filename (concat (symbol-name module) ".el")) - (unless (file-exists-p (expand-file-name filename WLDIR)) - (add-to-list 'lost filename))) - WL-MODULES) - lost)))) - + (setq test-dist-wl-lost-module nil) + (mapc + (lambda (module) + (let ((filename (concat (symbol-name module) ".el"))) + (unless (file-exists-p (expand-file-name filename WLDIR)) + (add-to-list 'test-dist-wl-lost-module-list filename)))) + WL-MODULES) + (lunit-assert (null test-dist-wl-lost-module-list))) + +(defvar test-dist-wl-bad-module-list nil) (luna-define-method test-wl-modules-trailing-whitespace ((case test-dist)) - (let (filename badmodule) - (mapc - (lambda (module) - (setq filename - (format "%s.el%s" (symbol-name module) - (if (eq 'wl-news module) ".in" ""))) + (setq test-dist-wl-bad-module-list nil) + (mapc + (lambda (module) + (let ((filename (format "%s.el%s" (symbol-name module) + (if (eq 'wl-news module) ".in" "")))) (with-temp-buffer (insert-file-contents (expand-file-name filename WLDIR)) (when (re-search-forward "[ \t]$" nil t) - (add-to-list 'badmodule filename)))) - WL-MODULES) - (lunit-assert (null badmodule)))) + (add-to-list 'test-dist-wl-bad-module-list filename))))) + WL-MODULES) + (lunit-assert (null test-dist-wl-bad-module-list))) ;; ELMO-MODULES +(defvar test-dist-elmo-lost-module-list nil) (luna-define-method test-elmo-modules-exists ((case test-dist)) - (lunit-assert - (null - (let (filename lost) - (mapc - (lambda (module) - (setq filename (concat (symbol-name module) ".el")) - (unless (file-exists-p (expand-file-name filename ELMODIR)) - (add-to-list 'lost filename))) - ELMO-MODULES) - lost)))) - + (setq test-dist-elmo-lost-module-list nil) + (mapc + (lambda (module) + (let ((filename (concat (symbol-name module) ".el"))) + (unless (file-exists-p (expand-file-name filename ELMODIR)) + (add-to-list 'test-dist-elmo-lost-module-list filename)))) + ELMO-MODULES) + (lunit-assert (null test-dist-elmo-lost-module-list))) + +(defvar test-dist-elmo-bad-module-list nil) (luna-define-method test-elmo-modules-trailing-whitespace ((case test-dist)) - (let (filename badmodule) - (mapc - (lambda (module) - (setq filename (format "%s.el" (symbol-name module))) + (setq test-dist-elmo-bad-module-list nil) + (mapc + (lambda (module) + (let ((filename (format "%s.el" (symbol-name module)))) (with-temp-buffer (insert-file-contents (expand-file-name filename ELMODIR)) (when (re-search-forward "[ \t]$" nil t) - (add-to-list 'badmodule filename)))) - ELMO-MODULES) - (lunit-assert (null badmodule)))) + (add-to-list 'test-dist-elmo-bad-module-list filename))))) + ELMO-MODULES) + (lunit-assert (null test-dist-elmo-bad-module-list))) ;; UTILS-MODULES +(defvar test-dist-util-lost-module-list nil) (luna-define-method test-util-modules-exists ((case test-dist)) - (lunit-assert - (null - (let (filename lost) - (mapc - (lambda (module) - (setq filename (concat (symbol-name module) ".el")) - (unless (file-exists-p (expand-file-name filename UTILSDIR)) - (add-to-list 'lost symbol))) - UTILS-MODULES) - lost)))) - + (setq test-dist-util-lost-module-list nil) + (mapc + (lambda (module) + (let ((filename (concat (symbol-name module) ".el"))) + (unless (file-exists-p (expand-file-name filename UTILSDIR)) + (add-to-list 'test-dist-util-lost-module-list symbol)))) + UTILS-MODULES) + (lunit-assert (null test-dist-util-lost-module-list))) + +(defvar test-dist-util-bad-module-list nil) (luna-define-method test-util-modules-trailing-whitespace ((case test-dist)) - (let (filename badmodule) - (mapc - (lambda (module) - (setq filename (format "%s.el" (symbol-name module))) + (setq test-dist-util-bad-module-list nil) + (mapc + (lambda (module) + (let ((filename (format "%s.el" (symbol-name module)))) (with-temp-buffer (insert-file-contents (expand-file-name filename UTILSDIR)) (when (re-search-forward "[ \t]$" nil t) - (add-to-list 'badmodule filename)))) - UTILS-MODULES) - (lunit-assert (null badmodule)))) + (add-to-list 'test-dist-util-bad-module-list filename))))) + UTILS-MODULES) + (lunit-assert (null test-dist-util-bad-module-list))) ;; Icons +(defvar test-dist-wl-lost-icon-list nil) (luna-define-method test-wl-icon-exists ((case test-dist)) - (lunit-assert - (null - (let (name value lost) - (mapatoms - (lambda (symbol) - (setq name (symbol-name symbol)) - (setq value (and (boundp symbol) (symbol-value symbol))) - (when (and (string-match "^wl-.*-icon$" name) - (stringp value) - (string-match "xpm$" value)) - (unless (file-exists-p (expand-file-name value ICONDIR)) - (add-to-list 'lost symbol))))) - lost)))) + (setq test-dist-wl-lost-icon-list nil) + (mapatoms + (lambda (symbol) + (let ((name (symbol-name symbol)) + (value (and (boundp symbol) (symbol-value symbol)))) + (when (and (string-match "^wl-.*-icon$" name) + (stringp value) + (string-match "xpm$" value)) + (unless (file-exists-p (expand-file-name value ICONDIR)) + (add-to-list 'test-dist-wl-lost-icon-list symbol)))))) + (lunit-assert (null test-dist-wl-lost-icon-list))) (luna-define-method test-version-status-icon-xpm ((case test-dist)) (require 'wl-demo) diff --git a/tests/test-elmo-date.el b/tests/test-elmo-date.el index 1808eb0..04d7814 100644 --- a/tests/test-elmo-date.el +++ b/tests/test-elmo-date.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'elmo-date) diff --git a/tests/test-elmo-imap4.el b/tests/test-elmo-imap4.el index bbb824e..0df25f9 100644 --- a/tests/test-elmo-imap4.el +++ b/tests/test-elmo-imap4.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'elmo-imap4) diff --git a/tests/test-elmo-localdir.el b/tests/test-elmo-localdir.el index b3eb877..27a5aa7 100644 --- a/tests/test-elmo-localdir.el +++ b/tests/test-elmo-localdir.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'elmo-localdir) diff --git a/tests/test-elmo-util.el b/tests/test-elmo-util.el index 01e178f..6c0c6b8 100644 --- a/tests/test-elmo-util.el +++ b/tests/test-elmo-util.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'elmo-util) diff --git a/tests/test-rfc2368.el b/tests/test-rfc2368.el index 763ced2..6cf96e6 100644 --- a/tests/test-rfc2368.el +++ b/tests/test-rfc2368.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'rfc2368) diff --git a/tests/test-utf7.el b/tests/test-utf7.el index 80cb839..43d3f15 100644 --- a/tests/test-utf7.el +++ b/tests/test-utf7.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) ;; Emacs 21 diff --git a/tests/test-wl-address.el b/tests/test-wl-address.el new file mode 100644 index 0000000..1e2418f --- /dev/null +++ b/tests/test-wl-address.el @@ -0,0 +1,19 @@ +;; -*- lexical-binding: t -*- +(require 'lunit) +(require 'wl-address) + +(luna-define-class test-wl-address (lunit-test-case)) + +(luna-define-method test-wl-address-header-extract-address-1 ((case test-wl-address)) + (lunit-assert + (string= + "m-sakura@example.org" + (wl-address-header-extract-address "Mine Sakurai ") + ))) + +(luna-define-method test-wl-address-header-extract-address-2 ((case test-wl-address)) + (lunit-assert + (string= + "m-sakura@example.org" + (wl-address-header-extract-address "m-sakura@example.org (Mine Sakurai)") + ))) diff --git a/tests/test-wl-draft.el b/tests/test-wl-draft.el index fb48574..fe71d6e 100644 --- a/tests/test-wl-draft.el +++ b/tests/test-wl-draft.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'wl-draft) diff --git a/tests/test-wl-util.el b/tests/test-wl-util.el index 1efc1bf..f833485 100644 --- a/tests/test-wl-util.el +++ b/tests/test-wl-util.el @@ -1,3 +1,4 @@ +;; -*- lexical-binding: t -*- (require 'lunit) (require 'wl-util) diff --git a/utils/ChangeLog b/utils/ChangeLog index 6c41ade..c27dd04 100644 --- a/utils/ChangeLog +++ b/utils/ChangeLog @@ -1,3 +1,14 @@ +2011-04-20 TAKAHASHI Kaoru + + * ptexinfmt.el: Fix description comment style. + +2011-04-13 TAKAHASHI Kaoru + + * ptexinfmt.el: Use lexical binding. + (ptexinfmt-broken-facility): Rename _dummy argument. + (texinfo-enclosure-list, texinfo-alias-list): Add defvar stub for + lexical binding. + 2010-09-02 TAKAHASHI Kaoru * ptexinfmt.el (texinfo-multitable-widths): Use `make-char' diff --git a/utils/ptexinfmt.el b/utils/ptexinfmt.el index 4c3e9ec..2875efb 100644 --- a/utils/ptexinfmt.el +++ b/utils/ptexinfmt.el @@ -1,4 +1,4 @@ -;;; ptexinfmt.el -- portable Texinfo formatter. +;;; ptexinfmt.el --- portable Texinfo formatter -*- lexical-binding: t -*- ;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, ;; 1994, 1995, 1996, 1997 Free Software Foundation, Inc. @@ -69,7 +69,7 @@ This is last argument in `ptexinfmt-broken-facility'.") (put 'ptexinfmt-broken-facility 'lisp-indent-function 'defun) (defmacro ptexinfmt-broken-facility (facility docstring assertion - &optional dummy) + &optional _dummy) "Declare a symbol FACILITY is broken if ASSERTION is nil. DOCSTRING will be printed if ASSERTION is nil and `ptexinfmt-disable-broken-notice-flag' is nil." @@ -129,6 +129,8 @@ DOCSTRING will be printed if ASSERTION is nil and t)) ;; @var{METASYNTACTIC-VARIABLE} +(defvar texinfo-enclosure-list) +(defvar texinfo-alias-list) (ptexinfmt-broken-facility texinfo-format-var "Don't perse @var argument." (condition-case nil diff --git a/wl/ChangeLog b/wl/ChangeLog index 531fa16..2786da9 100644 --- a/wl/ChangeLog +++ b/wl/ChangeLog @@ -4,6 +4,51 @@ message by `elmo-folder-append-buffer', handle case UID of appended message could not be found. +2011-06-03 Erik Hetzner + + * wl-vars.el (wl-summary-line-format): Document missing control + strings. + +2011-01-30 TAKAHASHI Kaoru + + * wl-demo.el (wl-demo-copyright-notice): Add 2011. + +2011-01-29 David Maus + + * wl-draft.el (wl-user-agent-compose): Add optional argument + RETURN-ACTION, introduced to `compose-mail' in Emacs 24. + +2011-01-09 David Maus + + * wl-template.el (wl-template-select): Reset draft config exec + flag when selecting template. + +2010-10-18 Katsumi Yamaoka + + * wl-summary.el (wl-summary-mode): Check with fboundp before calling `make-local-hook'. + * wl-mime.el (wl-draft-preview-message): Ditto. + +2010-09-18 Katsumi Yamaoka + + * wl-demo.el: Prune functions provided temporarily to avoid + compile warnings in the end. + +2010-09-08 Tetsurou Okazaki + + * wl-spam.el (wl-spam-register-spam-messages): Put spam mark on + the registered messages unless specified folder is a spam folder. + Add docstring. + (wl-spam-register-good-messages): Remove spam mark from + the registered messages. Add docstring. + (wl-summary-register-as-spam) + (wl-summary-register-as-spam-region, wl-thread-register-as-spam) + (wl-summary-register-as-spam-all) + (wl-summary-target-mark-register-as-spam) + (wl-summary-register-as-good) + (wl-summary-register-as-good-region, wl-thread-register-as-good) + (wl-summary-register-as-good-all) + (wl-summary-target-mark-register-as-good): Add docstring. + 2010-08-31 TAKAHASHI Kaoru * wl-summary.el: Delete trailing whitespace. @@ -1584,12 +1629,12 @@ 2004-12-11 Yuuichi Teranishi - * wl-mime.el (wl-draft-yank-current-message-entity): + * wl-mime.el (wl-draft-yank-current-message-entity): Switch to no-mime following method according to wl-message-display-type property. (wl-mime-preview-follow-no-mime): Use wl-message-mime-analysis-p. - * wl-message.el (wl-message-display-internal): + * wl-message.el (wl-message-display-internal): Put wl-message-display-type property on message buffer. * wl-message.el (wl-message-mime-analysis-p): Fixed misspelling. @@ -1846,7 +1891,7 @@ 2004-09-29 Yuuichi Teranishi - * wl-summary.el (wl-summary-overview-entity-compare-by-from): + * wl-summary.el (wl-summary-overview-entity-compare-by-from): Don't extract mail address. (wl-summary-mark-as-read-all): Dont' treat `read' flag. @@ -2023,8 +2068,8 @@ Add an argument `reverse'. All callers are updated. (wl-summary-sort): Add a prefix argument `reverse' to specify reverse sorting. - (wl-summary-sort-by-date, wl-summary-sort-by-number) - (wl-summary-sort-by-subject, wl-summary-sort-by-from) + (wl-summary-sort-by-date, wl-summary-sort-by-number) + (wl-summary-sort-by-subject, wl-summary-sort-by-from) (wl-summary-sort-by-list-info, wl-summary-sort-by-size): Likewise. 2004-09-08 Hiroya Murata @@ -2732,7 +2777,7 @@ * wl-summary.el (wl-summary-decide-flag): Use wl-completing-read-multiple instead of completing-read-multiple. - * wl-mule.el,wl-e21.el,wl-xmas.el (wl-completing-read-multiple): + * wl-mule.el,wl-e21.el,wl-xmas.el (wl-completing-read-multiple): New alias. * wl-demo.el (wl-demo-setup-properties)[XEmacs]: @@ -2792,7 +2837,7 @@ * wl-summary.el: Define `elmo-global-flag-list' to avoid byte-compile warning. - (wl-summary-mode-menu-spec): Follow the change of + (wl-summary-mode-menu-spec): Follow the change of `wl-summary-mark-as-important', `wl-thread-set-flags', and so on. (wl-summary-mode-map): Follow the change of `wl-summary-mark-as-important', `wl-thread-set-flags', and so on. @@ -2804,7 +2849,7 @@ instead of elmo-message-flagged-p. (wl-summary-persistent-mark-string): Follow the variable name change; Put wl-summary-flag-mark if the message has global-flag. - (wl-summary-target-mark-set-flags): Renamed from + (wl-summary-target-mark-set-flags): Renamed from wl-summary-target-mark-mark-as-important. (wl-summary-decide-flag): New function. (wl-summary-set-flags-internal): Renamed from @@ -2817,7 +2862,7 @@ (wl-summary-next-message): List flagged messages in the msgdb. * wl-score.el (wl-summary-score-update-all-lines): Use - wl-summary-add-flags-internal instead of + wl-summary-add-flags-internal instead of * wl-mime.el (wl-mime-display-header): Follow the variable name change. @@ -2842,7 +2887,7 @@ (wl-demo-setup-properties): Renamed from `wl-demo-set-background-color'. (wl-demo): Follow the change above. - + * Version number is increased to 2.11.24. 2004-02-06 Hiroya Murata @@ -3334,7 +3379,7 @@ (wl-draft-reedit): Rewrite. * Version number is increased to 2.11.19. - + 2003-10-09 Tetsurou Okazaki * wl-summary.el (wl-summary-search-by-subject): Remove unused local @@ -3426,7 +3471,7 @@ * wl-highlight.el (wl-highlight-summary-current-line): Added optional argument number and flag. - * wl-action.el (wl-summary-registered-temp-mark): + * wl-action.el (wl-summary-registered-temp-mark): Do nothing when wl-summary-buffer-temp-mark-list is nil. 2003-09-28 Hiroya Murata @@ -3606,14 +3651,14 @@ (wl-message-header-narrowing-widen-at-mouse): Ditto. (wl-message-header-narrowing-setup): Ditto. (wl-message-header-narrowing-toggle): Ditto. - + * wl-highlight.el (wl-message-header-narrowing-face): New face. * wl-vars.el (wl-folder-sync-range-alist): Set default range for 'flag as all. (wl-use-flag-folder-help-echo): New user option. - * wl-summary.el (wl-summary-detect-mark-position): Bind + * wl-summary.el (wl-summary-detect-mark-position): Bind wl-summary-highlight as nil. (wl-summary-set-mark-modified): Follow the API change. (wl-summary-mark-modified-p): Ditto. @@ -3637,7 +3682,7 @@ * wl-draft.el (wl-draft-kill): Follow the API change. * Version number is increased to 2.11.14. - + 2003-09-17 Hiroya Murata * wl-draft.el (wl-draft-do-fcc): Follow the API change. @@ -3768,7 +3813,7 @@ * wl-highlight.el (wl-highlight-summary-line-string): Changed argument mark to flags. - (wl-highlight-summary-current-line): Decide the face not by the + (wl-highlight-summary-current-line): Decide the face not by the persistent mark but flags. 2003-08-22 Hiroya Murata @@ -3904,7 +3949,7 @@ `wl-summary-message-visible-p' to check visibility of the message and jump to message only when the message line is visible and have different number; Call wl-summary-unset-mark with number argument. - (wl-summary-unset-mark): + (wl-summary-unset-mark): Use `wl-summary-message-visible-p' to check visibility of the message and jump to message only when the message line is visible and have different number; @@ -4041,7 +4086,7 @@ order of the arguments for `wl-expire-message-p'. (Reported by Shinichiro HIDA ) - * wl-summary.el (wl-summary-target-mark-reply-with-citation): + * wl-summary.el (wl-summary-target-mark-reply-with-citation): Check return value of wl-summary-reply. (wl-summary-reply): Recover window configuration when an error occured. @@ -4187,7 +4232,7 @@ * wl-thread.el (wl-thread-delete-message): Always update wl-summary-buffer-number-list. - * wl-action.el (wl-summary-print-destination): + * wl-action.el (wl-summary-print-destination): Do nothing when folder is nil. 2003-07-18 Hiroya Murata @@ -4230,7 +4275,7 @@ * wl-action.el (wl-summary-define-mark-action): Fixed region function. - * wl-summary.el (wl-summary-set-message-modified): + * wl-summary.el (wl-summary-set-message-modified): Call wl-summary-set-mark-modified. (wl-summary-delete-messages-on-buffer): Call wl-folder-set-folder-updated instead of wl-folder-update-unread. @@ -4279,7 +4324,7 @@ (wl-summary-exec): Ditto. 2003-07-15 Mito - + * wl-summary.el (wl-summary-entity-info-msg): Don't replace '%' to '%%'. @@ -4308,7 +4353,7 @@ * wl-draft.el (wl-draft-normal-send-func): Fixed bug for removing empty lines. - * wl-action.el: New file. + * wl-action.el: New file. 2003-07-14 Yuuichi Teranishi @@ -4333,8 +4378,8 @@ * wl-vars.el (wl-summary-mark-action-list): Moved from wl-summary.el and define using defcustom; Define 4th element as a face. - - * wl-summary.el (wl-summary-incorporate): Use + + * wl-summary.el (wl-summary-incorporate): Use `wl-summary-prefetch-region-no-mark' instead of `wl-summary-prefetch-region'. (wl-summary-prefetch-region-no-mark): Revival of old @@ -4535,7 +4580,7 @@ (wl-summary-insert-sequential): Changed argument msgdb to folder. (wl-summary-insert-headers): Changed argument overview to folder. (wl-summary-search-by-subject): Likewise. - (wl-summary-insert-thread): Renamed from + (wl-summary-insert-thread): Renamed from wl-summary-insert-thread-entity and changed argument msgdb to folder. * wl-folder.el (wl-folder-check-one-entity): Treat elmo-imap4-bye-error @@ -5583,7 +5628,7 @@ and mailing-list:. (wl-summary-overview-entity-compare-by-list-info): Treat empty field value. - (wl-summary-line-list-info): Print mailing-list name even when + (wl-summary-line-list-info): Print mailing-list name even when list-number is empty. 2002-07-18 Yoichi NAKAYAMA @@ -5676,7 +5721,7 @@ 2002-06-17 Yuuichi Teranishi - * wl-summary.el (wl-summary-read-folder): Use copy-sequence + * wl-summary.el (wl-summary-read-folder): Use copy-sequence `wl-folder-entity-hashtb' as completion table. 2002-06-14 Katsumi Yamaoka @@ -5856,7 +5901,7 @@ 2002-05-14 KAMO Tomoyuki - * wl-summary.el (wl-summary-prefetch-msg): + * wl-summary.el (wl-summary-prefetch-msg): If wl-prefetch-confirm is nil and arg is non-nil, do prefetch. 2002-05-11 Yuuichi Teranishi @@ -6075,7 +6120,7 @@ (wl-summary-subject-filter-func-internal): Ditto. (All other related portions are changed.) (wl-summary-buffer-set-folder): - Set up wl-summary-buffer-number-column and + Set up wl-summary-buffer-number-column and wl-summary-buffer-line-formatter (All other related portions are changed.) (wl-summary-buffer-number-column-detect): Abolished. @@ -6146,7 +6191,7 @@ * wl-folder.el (wl-folder-buffer-search-entity): Bind case-fold-search as nil. - * wl-thread.el (wl-thread-open-all-unread): Use + * wl-thread.el (wl-thread-open-all-unread): Use elmo-folder-list-messages-mark-match. (wl-thread-insert-message): Removed argument `mark-alist'. (wl-thread-msg-mark-as-important): Use elmo-msgdb-get-mark and diff --git a/wl/wl-demo.el b/wl/wl-demo.el index 38f78c0..5b90ed2 100644 --- a/wl/wl-demo.el +++ b/wl/wl-demo.el @@ -31,7 +31,7 @@ ;;; Code: (defconst wl-demo-copyright-notice - "Copyright (C) 1998-2010 Yuuichi Teranishi " + "Copyright (C) 1998-2011 Yuuichi Teranishi " "A declaration of the copyright on Wanderlust.") (eval-when-compile @@ -408,6 +408,17 @@ argument." 1)) buffer)) +;; Prune functions provided temporarily to avoid compile warnings. +(eval-when-compile + (dolist (fn '(face-background-name + frame-char-height frame-char-width glyph-height glyph-width + image-size make-extent propertize set-extent-end-glyph + window-pixel-height window-pixel-width)) + (when (and (get fn 'defalias-maybe) + (eq (symbol-function fn) 'ignore)) + (put fn 'defalias-maybe nil) + (fmakunbound fn)))) + (require 'product) (product-provide (provide 'wl-demo) (require 'wl-version)) diff --git a/wl/wl-draft.el b/wl/wl-draft.el index 08995f7..2e3faae 100644 --- a/wl/wl-draft.el +++ b/wl/wl-draft.el @@ -2534,10 +2534,10 @@ Automatically applied in draft sending time." ;;;###autoload (defun wl-user-agent-compose (&optional to subject other-headers continue switch-function yank-action - send-actions) + send-actions return-action) "Support the `compose-mail' interface for wl. Only support for TO, SUBJECT, and OTHER-HEADERS has been implemented. -Support for CONTINUE, YANK-ACTION, and SEND-ACTIONS has not +Support for CONTINUE, YANK-ACTION, SEND-ACTIONS and RETURN-ACTION has not been implemented yet. Partial support for SWITCH-FUNCTION now supported." (unless (featurep 'wl) diff --git a/wl/wl-mime.el b/wl/wl-mime.el index 0c14cfd..364f426 100644 --- a/wl/wl-mime.el +++ b/wl/wl-mime.el @@ -358,7 +358,8 @@ It calls following-method selected from variable (when wl-highlight-body-too (wl-highlight-body)) (run-hooks 'wl-draft-preview-message-hook)) - (make-local-hook 'kill-buffer-hook) + (if (fboundp 'make-local-hook) + (make-local-hook 'kill-buffer-hook)) (add-hook 'kill-buffer-hook #'wl-draft-hide-attributes-buffer nil t) (if wl-draft-preview-attributes (ignore-errors ; in case when the window is too small diff --git a/wl/wl-spam.el b/wl/wl-spam.el index 8cb870f..094852c 100644 --- a/wl/wl-spam.el +++ b/wl/wl-spam.el @@ -170,18 +170,28 @@ See `wl-summary-mark-action-list' for the detail of element." (funcall function folder (cdr partition) (car partition))))))) (defun wl-spam-register-spam-messages (folder numbers) + "Register messages specified by FOLDER and NUMBERS as spam. +Put spam mark unless FOLDER is a spam folder." (elmo-with-progress-display (elmo-spam-register (length numbers)) "Registering spam" (elmo-spam-register-spam-messages (elmo-spam-processor) folder - numbers))) + numbers)) + (unless (eq (wl-spam-domain (elmo-folder-name-internal folder)) + 'spam) + (dolist (number numbers) + (wl-summary-spam number)))) (defun wl-spam-register-good-messages (folder numbers) + "Register messages specified by FOLDER and NUMBERS as non-spam. +Remove spam mark." (elmo-with-progress-display (elmo-spam-register (length numbers)) "Registering good" (elmo-spam-register-good-messages (elmo-spam-processor) folder - numbers))) + numbers)) + (dolist (number numbers) + (wl-summary-unmark-spam number))) (defun wl-spam-save-status (&optional force) (interactive "P") @@ -266,6 +276,8 @@ See `wl-summary-mark-action-list' for the detail of element." (message "No message to test."))))) (defun wl-summary-register-as-spam () + "Register current message as spam. +Put spam mark unless current folder is a spam folder." (interactive) (let ((number (wl-summary-message-number))) (when number @@ -273,6 +285,8 @@ See `wl-summary-mark-action-list' for the detail of element." (list number))))) (defun wl-summary-register-as-spam-region (beg end) + "Register messages in the region between BEG and END as spam. +Put spam mark unless current folder is a spam folder." (interactive "r") (let ((numbers (wl-summary-collect-numbers-region beg end))) (cond (numbers @@ -282,15 +296,22 @@ See `wl-summary-mark-action-list' for the detail of element." (message "No message to register as spam."))))) (defun wl-thread-register-as-spam (&optional arg) + "Register messages which are the descendant of the current thread as spam. +Put spam mark unless current folder is a spam folder. +With prefix argument, it affects on the all messages in the thread tree." (interactive "P") (wl-thread-call-region-func 'wl-summary-register-as-spam-region arg)) (defun wl-summary-register-as-spam-all () + "Register all messages in the folder as spam. +Put spam mark unless current folder is a spam folder." (interactive) (wl-spam-register-spam-messages wl-summary-buffer-elmo-folder wl-summary-buffer-number-list)) (defun wl-summary-target-mark-register-as-spam () + "Register messages with the target mark as spam. +Put spam mark unless current folder is a spam folder." (interactive) (save-excursion (goto-char (point-min)) @@ -303,6 +324,8 @@ See `wl-summary-mark-action-list' for the detail of element." (wl-summary-unset-mark number))))) (defun wl-summary-register-as-good () + "Register current message as non-spam. +Remove spam mark." (interactive) (let ((number (wl-summary-message-number))) (when number @@ -310,6 +333,8 @@ See `wl-summary-mark-action-list' for the detail of element." (list number))))) (defun wl-summary-register-as-good-region (beg end) + "Register messages in the region between BEG and END as non-spam. +Remove spam mark." (interactive "r") (let ((numbers (wl-summary-collect-numbers-region beg end))) (cond (numbers @@ -319,15 +344,22 @@ See `wl-summary-mark-action-list' for the detail of element." (message "No message to register as good."))))) (defun wl-thread-register-as-good (&optional arg) + "Register messages which are the descendant of the current thread as non-spam. +Remove spam mark. +With prefix argument, it affects on the all messages in the thread tree." (interactive "P") (wl-thread-call-region-func 'wl-summary-register-as-good-region arg)) (defun wl-summary-register-as-good-all () + "Register all messages in the folder as non-spam. +Remove spam mark." (interactive) (wl-spam-register-good-messages wl-summary-buffer-elmo-folder wl-summary-buffer-number-list)) (defun wl-summary-target-mark-register-as-good () + "Register messages with the target mark as non-spam. +Remove spam mark." (interactive) (save-excursion (goto-char (point-min)) diff --git a/wl/wl-summary.el b/wl/wl-summary.el index 99742e6..857ee19 100644 --- a/wl/wl-summary.el +++ b/wl/wl-summary.el @@ -952,13 +952,15 @@ Entering Folder mode calls the value of `wl-summary-mode-hook'." (wl-summary-window-scroll-functions)) (when wl-summary-buffer-window-scroll-functions (let ((hook (if wl-on-xemacs 'pre-idle-hook 'window-scroll-functions))) - (make-local-hook hook) + (if (fboundp 'make-local-hook) + (make-local-hook hook)) (dolist (function wl-summary-buffer-window-scroll-functions) (add-hook hook function nil t))) (add-hook 'window-size-change-functions #'wl-summary-after-resize-function)) (dolist (hook '(change-major-mode-hook kill-buffer-hook)) - (make-local-hook hook) + (if (fboundp 'make-local-hook) + (make-local-hook hook)) (add-hook hook #'wl-summary-buffer-detach nil t)) ;; This hook may contain the function `wl-setup-summary' for reasons ;; of system internal to accord facilities for the Emacs variants. diff --git a/wl/wl-template.el b/wl/wl-template.el index a17c4a7..fcc44d8 100644 --- a/wl/wl-template.el +++ b/wl/wl-template.el @@ -97,6 +97,7 @@ Entering WL-Template mode calls the value of `wl-template-mode-hook'." (interactive "P") (unless wl-template-alist (error "Please set `wl-template-alist'")) + (setq wl-draft-config-exec-flag t) (if (not (if arg (not wl-template-visible-select) wl-template-visible-select)) diff --git a/wl/wl-vars.el b/wl/wl-vars.el index dea7a78..568be98 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -274,6 +274,7 @@ which are replaced by the given information: %D The day of the date field of the message (zero padded). %W The weekday name of the date field of the message (zero padded). %h The hour of the date field of the message (zero padded). +%l The number in the mailing list. %m The minute of the date field of the message (zero padded). %[ An open bracket. If the message thread is linked, it is replaced with '<'. @@ -287,7 +288,10 @@ which are replaced by the given information: %f The from: field string of the message. %s The subject: field string of the message. %S The size of the message (if available). +%t The branch of the thread. +%@ `@' only if the first MIME part is multipart/mixed. %~ If the previous spec is not zero-length, replaced with ' '. +%# mailing list information (`(' ML-name [ ` ' ML-number ] `)') If the format string contains the specifiers %( and %), the text between them will have the specified number of columns.