Merged trunk to branch elmo-imap4-compliance
authordmaus <dmaus>
Sun, 5 Jun 2011 12:08:41 +0000 (12:08 +0000)
committerdmaus <dmaus>
Sun, 5 Jun 2011 12:08:41 +0000 (12:08 +0000)
36 files changed:
ChangeLog
NEWS
NEWS.ja
WL-MK
doc/wl-ja.texi
doc/wl.texi
elmo/ChangeLog
elmo/elmo-filter.el
elmo/elmo-imap4.el
elmo/elmo-map.el
elmo/elmo-multi.el
elmo/elmo-nntp.el
elmo/elmo-pipe.el
elmo/elmo-pop3.el
elmo/elmo.el
tests/ChangeLog
tests/test-dist.el
tests/test-elmo-date.el
tests/test-elmo-imap4.el
tests/test-elmo-localdir.el
tests/test-elmo-util.el
tests/test-rfc2368.el
tests/test-utf7.el
tests/test-wl-address.el [new file with mode: 0644]
tests/test-wl-draft.el
tests/test-wl-util.el
utils/ChangeLog
utils/ptexinfmt.el
wl/ChangeLog
wl/wl-demo.el
wl/wl-draft.el
wl/wl-mime.el
wl/wl-spam.el
wl/wl-summary.el
wl/wl-template.el
wl/wl-vars.el

index 22bc186..de7bf5a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-02-01  Tetsurou Okazaki  <okazaki@be.to>
+
+       * 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  <kaoru@kaisei.org>
 
        * INSTALL: Update recommended version of APEL.
diff --git a/NEWS b/NEWS
index 695d3ec..863c00f 100644 (file)
--- 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 (file)
--- a/NEWS.ja
+++ b/NEWS.ja
@@ -2,6 +2,10 @@ Wanderlust NEWS (\e$BF|K\8lHG\e(B) -- User-visible changes in Wanderlust.
 
 * 2.14.x \e$B$+$i\e(B 2.16.0 \e$B$X$NJQ99E@\e(B
 
+** spam \e$B$H$7$FEPO?$7$?%a%C%;!<%8$K\e(B spam \e$B%^!<%/$rIU$1$^$9!#\e(B
+
+** non-spam \e$B$H$7$FEPO?$7$?%a%C%;!<%8$+$i\e(B spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
+
 ** ESEARCH (RFC4731) \e$B$,%5%]!<%H$5$l$^$7$?!#\e(B
 
 ** \e$B?75,%*%W%7%g%s\e(B elmo-imap4-set-seen-flag-explicitly \e$B$,DI2C$5$l$^$7$?!#\e(B
diff --git a/WL-MK b/WL-MK
index 88f8dc8..0086a93 100644 (file)
--- a/WL-MK
+++ b/WL-MK
       (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 " "))
     (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)
index 5e0f1ad..58d7a3b 100644 (file)
@@ -7113,22 +7113,22 @@ spam \e$B$+$I$&$+$N%F%9%H$r9T$$$^$9!#\e(Bspam \e$B$HH=Dj$5$l$?%a%C%;!<%8$K$O!"\e(Bsp
 @item k s
 @kindex k s (Summary)
 @findex wl-summary-register-as-spam
-\e$B%+!<%=%k9T$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%+!<%=%k9T$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$rIU$1$^$9!#\e(B
 
 @item k S
 @kindex k S (Summary)
 @findex wl-summary-register-as-spam-all
-\e$B%U%)%k%@Fb$NA4$F$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%U%)%k%@Fb$NA4$F$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$rIU$1$^$9!#\e(B
 
 @item k n
 @kindex k n (Summary)
 @findex wl-summary-register-as-good
-\e$B%+!<%=%k9T$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%+!<%=%k9T$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
 
 @item k N
 @kindex k N (Summary)
 @findex wl-summary-register-as-good-all
-\e$B%U%)%k%@Fb$NA4$F$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%U%)%k%@Fb$NA4$F$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
 
 @item r k m
 @kindex r k m (Summary)
@@ -7144,12 +7144,12 @@ spam \e$B$+$I$&$+$N%F%9%H$r9T$$$^$9!#\e(Bspam \e$B$HH=Dj$5$l$?%a%C%;!<%8$K$O!"\e(Bsp
 @item r k s
 @kindex r k s (Summary)
 @findex wl-summary-register-as-spam-region
-\e$B;XDj%j!<%8%g%s$K$"$k%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B;XDj%j!<%8%g%s$K$"$k%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$rIU$1$^$9!#\e(B
 
 @item r k n
 @kindex r k n (Summary)
 @findex wl-summary-register-as-good-region
-\e$B;XDj%j!<%8%g%s$K$"$k%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B;XDj%j!<%8%g%s$K$"$k%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
 
 @item t k m
 @kindex t k m (Summary)
@@ -7170,14 +7170,16 @@ prefix argument \e$B$D$-$J$i$P%+!<%=%k9T$,$"$k%a%C%;!<%8$r4^$`%9%l%C%IA4$F$K\e(B
 @item t k s
 @kindex t k s (Summary)
 @findex wl-thread-register-as-spam
-\e$B%+!<%=%k9T$,$"$k%a%C%;!<%8$r@hF,$H$9$k%9%l%C%I$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%+!<%=%k9T$,$"$k%a%C%;!<%8$r@hF,$H$9$k%9%l%C%I$N%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7\e(B
+spam \e$B%^!<%/$rIU$1$^$9!#\e(B
 prefix argument \e$B$D$-$J$i$P%+!<%=%k9T$,$"$k%a%C%;!<%8$r4^$`%9%l%C%IA4$F$K\e(B
 \e$BE,MQ$7$^$9!#\e(B
 
 @item t k n
 @kindex t k n (Summary)
 @findex wl-thread-register-as-good
-\e$B%+!<%=%k9T$,$"$k%a%C%;!<%8$r@hF,$H$9$k%9%l%C%I$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B%+!<%=%k9T$,$"$k%a%C%;!<%8$r@hF,$H$9$k%9%l%C%I$N%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7\e(B
+spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
 prefix argument \e$B$D$-$J$i$P%+!<%=%k9T$,$"$k%a%C%;!<%8$r4^$`%9%l%C%IA4$F$K\e(B
 \e$BE,MQ$7$^$9!#\e(B
 
@@ -7190,12 +7192,12 @@ prefix argument \e$B$D$-$J$i$P%+!<%=%k9T$,$"$k%a%C%;!<%8$r4^$`%9%l%C%IA4$F$K\e(B
 @item m s
 @kindex m s (Summary)
 @findex wl-summary-target-mark-register-as-spam
-\e$B$^$H$a=hM}MQ%^!<%/\e(B @samp{*} \e$B$N$D$$$?%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7$^$9!#\e(B
+\e$B$^$H$a=hM}MQ%^!<%/\e(B @samp{*} \e$B$N$D$$$?%a%C%;!<%8$r\e(B spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$rIU$1$^$9!#\e(B
 
 @item m n
 @kindex m n (Summary)
 @findex wl-summary-target-mark-register-as-good
-\e$B$^$H$a=hM}MQ%^!<%/\e(B @samp{*} \e$B$N$D$$$?%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7$^\e(B
+\e$B$^$H$a=hM}MQ%^!<%/\e(B @samp{*} \e$B$N$D$$$?%a%C%;!<%8$r\e(B non-spam \e$B$H$7$FEPO?$7\e(B spam \e$B%^!<%/$r<h$j=|$-$^$9!#\e(B
 \e$B$9!#\e(B
 @end table
 
index a7997f6..52b5baf 100644 (file)
@@ -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
index ebe1eef..b8fe321 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-03  David Maus  <dmaus@ictsoc.de>
+
+       * 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  <dmaus@ictsoc.de>
 
        * elmo-date.el (elmo-time-make-imap-date-string): New
@@ -8,6 +13,13 @@
 
 2011-05-29  David Maus  <dmaus@ictsoc.de>
 
+       * 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  <dmaus@ictsoc.de>
+
        * elmo-maildir.el (elmo-folder-append-buffer): Return number of
        appended message.
        * elmo-localdir.el (elmo-folder-append-buffer): Dto.
        * elmo-archive.el (elmo-folder-append-buffer)
        (elmo-archive-folder-append-buffer): Dto.
 
+2011-01-12  David Maus  <dmaus@ictsoc.de>
+
+       * elmo-nntp.el (elmo-nntp-folder-msgdb-create): Remove accidental
+       rebinding of new message db symbol.
+
+2010-11-02  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>
+
+       * elmo-pop3.el (elmo-folder-open-internal): Don't load location
+       map if it is already loaded.
+
+2010-10-31  David Maus  <dmaus@ictsoc.de>
+
+       * 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  <dmaus@ictsoc.de>
+
+       * 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  <dmaus@ictsoc.de>
+
+       * elmo-multi.el (elmo-folder-open-internal-p): Evaluate symbol to
+       return state of child folders.
+
+2010-10-13  David Maus  <dmaus@ictsoc.de>
+
+       * 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  <dmaus@ictsoc.de>
 
        * elmo-imap4.el (elmo-folder-delete-messages-plugged): Use smarter
 
 2005-02-17  ARISAWA Akihiro  <ari@mbf.sphere.ne.jp>
 
-       * 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  <lapis-lazuli@pop06.odn.ne.jp>
 
        * 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'.
        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
        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.
 
 2003-09-21  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
 
-       * 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.
        (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
        * 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.
 
        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
        `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.
 
 2003-08-05  Yuuichi Teranishi  <teranisi@gohome.org>
 
-       * 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
 
 2002-05-05  David Smith <ultrasoul@ultrasoul.com>
 
-       * 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  <lapis-lazuli@pop06.odn.ne.jp>
        (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).
 
 
 2003-03-25  Yuuichi Teranishi  <teranisi@gohome.org>
 
-       * 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
        * 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.
 
 
        * 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.
index 11b736d..70a32e1 100644 (file)
 (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))))
index d040a61..bfdfb0c 100644 (file)
@@ -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))
index 20c6f65..383124a 100644 (file)
@@ -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))))
index 122a6df..2e52de3 100644 (file)
   (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)))
index 9e57d86..6a05ec0 100644 (file)
@@ -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))
index 2ae9626..f624d8a 100644 (file)
 (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)))
 
index aff5d75..07555c6 100644 (file)
@@ -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)
index 1a92c4d..348cf47 100644 (file)
@@ -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
index f6adbaf..1919168 100644 (file)
@@ -1,3 +1,27 @@
+2011-05-30  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * test-wl-address.el: New file.
+
+2011-04-07  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * 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  <kaoru@kaisei.org>
+
+       * 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  <kaoru@kaisei.org>
 
        * test-dist.el (test-elmo-modules-trailing-whitespace)
index aabfd03..5619f0b 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'wl)
 (require 'cl)                          ; mapc
 (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)
index 1808eb0..04d7814 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'elmo-date)
 
index bbb824e..0df25f9 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'elmo-imap4)
 
index b3eb877..27a5aa7 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'elmo-localdir)
 
index 01e178f..6c0c6b8 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'elmo-util)
 
index 763ced2..6cf96e6 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'rfc2368)
 
index 80cb839..43d3f15 100644 (file)
@@ -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 (file)
index 0000000..1e2418f
--- /dev/null
@@ -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 <m-sakura@example.org>")
+    )))
+
+(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)")
+    )))
index fb48574..fe71d6e 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'wl-draft)
 
index 1efc1bf..f833485 100644 (file)
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t -*-
 (require 'lunit)
 (require 'wl-util)
 
index 6c41ade..c27dd04 100644 (file)
@@ -1,3 +1,14 @@
+2011-04-20  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * ptexinfmt.el: Fix description comment style.
+
+2011-04-13  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * 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  <kaoru@kaisei.org>
 
        * ptexinfmt.el (texinfo-multitable-widths): Use `make-char'
index 4c3e9ec..2875efb 100644 (file)
@@ -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
index 531fa16..2786da9 100644 (file)
@@ -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  <egh@e6h.org>
+
+       * wl-vars.el (wl-summary-line-format): Document missing control
+       strings.
+
+2011-01-30  TAKAHASHI Kaoru  <kaoru@kaisei.org>
+
+       * wl-demo.el (wl-demo-copyright-notice): Add 2011.
+
+2011-01-29  David Maus  <dmaus@ictsoc.de>
+
+       * wl-draft.el (wl-user-agent-compose): Add optional argument
+       RETURN-ACTION, introduced to `compose-mail' in Emacs 24.
+
+2011-01-09  David Maus  <dmaus@ictsoc.de>
+
+       * wl-template.el (wl-template-select): Reset draft config exec
+       flag when selecting template.
+
+2010-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * 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  <yamaoka@jpl.org>
+
+       * wl-demo.el: Prune functions provided temporarily to avoid
+       compile warnings in the end.
+
+2010-09-08  Tetsurou Okazaki  <okazaki@be.to>
+
+       * 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  <kaoru@kaisei.org>
 
        * wl-summary.el: Delete trailing whitespace.
 
 2004-12-11  Yuuichi Teranishi  <teranisi@gohome.org>
 
-       * 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.
 
 2004-09-29  Yuuichi Teranishi  <teranisi@gohome.org>
 
-       * 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.
 
        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  <lapis-lazuli@pop06.odn.ne.jp>
        * 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]:
 
        * 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.
        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
        (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.
 
        (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  <lapis-lazuli@pop06.odn.ne.jp>
        (wl-draft-reedit): Rewrite.
 
        * Version number is increased to 2.11.19.
-       
+
 2003-10-09  Tetsurou Okazaki  <okazaki@be.to>
 
        * wl-summary.el (wl-summary-search-by-subject): Remove unused local
        * 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  <lapis-lazuli@pop06.odn.ne.jp>
        (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.
        * wl-draft.el (wl-draft-kill): Follow the API change.
 
        * Version number is increased to 2.11.14.
-       
+
 2003-09-17  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
 
        * wl-draft.el (wl-draft-do-fcc): Follow the API change.
 
        * 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  <lapis-lazuli@pop06.odn.ne.jp>
        `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;
        order of the arguments for `wl-expire-message-p'.
        (Reported by Shinichiro HIDA <shinichiro@stained-g.net>)
 
-       * 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.
 
        * 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  <lapis-lazuli@pop06.odn.ne.jp>
 
        * 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.
        (wl-summary-exec): Ditto.
 
 2003-07-15  Mito  <mito@mxa.nes.nec.co.jp>
-       
+
        * wl-summary.el (wl-summary-entity-info-msg): Don't replace '%' to
        '%%'.
 
        * 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  <teranisi@gohome.org>
 
        * 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
        (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
        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  <yoichi@eken.phys.nagoya-u.ac.jp>
 
 2002-06-17  Yuuichi Teranishi  <teranisi@gohome.org>
 
-       * 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  <yamaoka@jpl.org>
 
 2002-05-14  KAMO Tomoyuki  <kamo@i-manage.co.jp>
 
-       * 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  <teranisi@gohome.org>
        (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.
        * 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
index 38f78c0..5b90ed2 100644 (file)
@@ -31,7 +31,7 @@
 ;;; Code:
 
 (defconst wl-demo-copyright-notice
-  "Copyright (C) 1998-2010 Yuuichi Teranishi <teranisi@gohome.org>"
+  "Copyright (C) 1998-2011 Yuuichi Teranishi <teranisi@gohome.org>"
   "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))
 
index 08995f7..2e3faae 100644 (file)
@@ -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)
index 0c14cfd..364f426 100644 (file)
@@ -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
index 8cb870f..094852c 100644 (file)
@@ -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))
index 99742e6..857ee19 100644 (file)
@@ -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.
index a17c4a7..fcc44d8 100644 (file)
@@ -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))
index dea7a78..568be98 100644 (file)
@@ -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.