+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.
* 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'.
* 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
(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)
@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)
@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)
@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
@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
@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)
@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)
@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
@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
+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
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.
(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))))
(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)))
(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))
")"))))
(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))
(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))))
(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)))
(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))
(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)))
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)
(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.")
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.
(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
+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)
+;; -*- 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)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'elmo-date)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'elmo-imap4)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'elmo-localdir)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'elmo-util)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'rfc2368)
+;; -*- lexical-binding: t -*-
(require 'lunit)
;; Emacs 21
--- /dev/null
+;; -*- 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)")
+ )))
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'wl-draft)
+;; -*- lexical-binding: t -*-
(require 'lunit)
(require 'wl-util)
+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'
-;;; 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.
(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."
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
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
;;; 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
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))
;;;###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)
(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
(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")
(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
(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
(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))
(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
(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
(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))
(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.
(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))
%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 '<'.
%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.