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-sync-update): Call elmo-folder-length instead of
elmo-folder-messages.
(wl-summary-insert-headers): Don't call
elmo-folder-list-message-entities.
* elmo.el (elmo-folder-list-message-entities): Define as inline function.
(elmo-folder-messages): Abolish.
* elmo-multi.el (elmo-folder-check): Call elmo-folder-check for each folder.
(elmo-folder-synchronize): Define.
(elmo-message-entity): Define.
+2003-07-17 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * elmo.el (elmo-folder-list-message-entities): Define as inline
+ function.
+ (elmo-folder-messages): Abolish.
+
+ * elmo-multi.el (elmo-folder-check): Call elmo-folder-check for each
+ folder.
+ (elmo-folder-synchronize): Define.
+ (elmo-message-entity): Define.
+
2003-07-16 Yuuichi Teranishi <teranisi@gohome.org>
* elmo-imap4.el (elmo-folder-delete-messages-plugged): Call
(luna-define-method elmo-folder-check ((folder elmo-multi-folder))
(dolist (fld (elmo-multi-folder-children-internal folder))
- (elmo-folder-synchronize fld)))
+ (elmo-folder-check fld)))
(luna-define-method elmo-folder-close-internal ((folder elmo-multi-folder))
(dolist (fld (elmo-multi-folder-children-internal folder))
(dolist (fld (elmo-multi-folder-children-internal folder))
(elmo-folder-set-msgdb-internal fld nil)))
+(luna-define-method elmo-folder-synchronize ((folder elmo-multi-folder)
+ &optional ignore-msgdb
+ no-check)
+ (dolist (fld (elmo-multi-folder-children-internal folder))
+ (elmo-folder-synchronize fld ignore-msgdb no-check)))
+
(luna-define-method elmo-folder-expand-msgdb-path ((folder
elmo-multi-folder))
(expand-file-name (elmo-replace-string-as-filename
(nth (- (/ number (elmo-multi-folder-divide-number-internal folder)) 1)
(elmo-multi-folder-children-internal folder)))
+(luna-define-method elmo-message-entity ((folder elmo-folder) key)
+ (cond
+ ((numberp key)
+ (elmo-msgdb-message-entity (elmo-folder-msgdb
+ (elmo-message-folder folder key))
+ key))
+ ((stringp key)
+ (let ((children (elmo-multi-folder-children-internal folder))
+ match)
+ (while children
+ (when (setq match (elmo-message-entity (car children) key))
+ (setq children nil))
+ (setq children (cdr children)))
+ match))))
+
(defun elmo-multi-msgdb (msgdb base)
(list (mapcar (function
(lambda (x)
(elmo-folder-close dst-folder)))
(if (and (not no-delete) succeeds)
(progn
- ;;(if (not no-delete-info)
- ;;(message "Cleaning up src folder..."))
(if (and (elmo-folder-delete-messages src-folder succeeds)
(elmo-msgdb-delete-msgs
(elmo-folder-msgdb src-folder) succeeds))
(message "move: delete messages from %s failed."
(elmo-folder-name-internal src-folder))
(setq result nil))
- ;;(if (and result
- ;;(not no-delete-info))
- ;;(message "Cleaning up src folder...done"))
result)
(if no-delete
(progn
(elmo-message-use-cache-p folder number))
(elmo-folder-set-mark-modified-internal folder t)))
-(luna-define-generic elmo-folder-list-message-entities (folder
- &optional numbers
- in-msgdb)
- "List message-entity structure of FOLDER.
-If optional NUMBERS is specified, only the corresponding entities are
-retrieved.
-If second optional IN-MSGDB is specified, only entities in the msgdb are
-retreived (don't retrieve entities from folder).")
-
-(luna-define-method elmo-folder-list-message-entities ((folder elmo-folder)
- &optional numbers
- in-msgdb)
- (if numbers
- (mapcar (lambda (x) (elmo-message-entity folder x)) numbers)
- (elmo-msgdb-get-overview (elmo-folder-msgdb folder))))
-
(luna-define-generic elmo-message-entity (folder key)
"Return the message-entity structure which matches to the KEY.
KEY is a number or a string.
(def-edebug-spec elmo-folder-do-each-message-entity
((symbolp form &rest form) &rest form))
+(defsubst elmo-folder-list-message-entities (folder)
+ ;; List all message entities in the FOLDER.
+ (mapcar
+ (lambda (number) (elmo-message-entity folder number))
+ (elmo-folder-list-messages folder t t)))
+
(defmacro elmo-folder-do-each-message-entity (spec &rest form)
"Iterator for message entity in the folder.
\(elmo-folder-do-each-message-entity \(entity folder\)
(elmo-folder-set-killed-list-internal folder killed-list)
nil))))
-(defun elmo-folder-messages (folder)
- "Return number of messages in the FOLDER."
- (length
- (elmo-msgdb-get-number-alist
- (elmo-folder-msgdb folder))))
-
(luna-define-generic elmo-folder-length (folder)
"Return number of messages in the FOLDER.")
+2003-07-17 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * 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-sync-update): Call elmo-folder-length instead of
+ elmo-folder-messages.
+ (wl-summary-insert-headers): Don't call
+ elmo-folder-list-message-entities.
+
2003-07-17 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
* wl-action.el (wl-summary-define-mark-action): Call
(defun wl-summary-set-message-modified ()
(elmo-folder-set-message-modified-internal
wl-summary-buffer-elmo-folder t)
- (setq wl-summary-buffer-message-modified t))
+ (setq wl-summary-buffer-message-modified t)
+ (wl-summary-set-mark-modified))
(defun wl-summary-message-modified-p ()
wl-summary-buffer-message-modified)
(defun wl-summary-set-mark-modified ()
;;(message (concat deleting-info "done"))
(wl-summary-count-unread)
(wl-summary-update-modeline)
- (wl-folder-update-unread
- (wl-summary-buffer-folder-name)
- (+ wl-summary-buffer-unread-count wl-summary-buffer-new-count)))))
+ (wl-folder-set-folder-updated
+ (elmo-folder-name-internal wl-summary-buffer-elmo-folder)
+ (list 0
+ (+ wl-summary-buffer-unread-count wl-summary-buffer-new-count)
+ (elmo-folder-length wl-summary-buffer-elmo-folder))))))
(defun wl-summary-replace-status-marks (before after)
"Replace the status marks on buffer."
(list 0
(let ((lst (wl-summary-count-unread)))
(+ (car lst) (nth 1 lst)))
- (elmo-folder-messages folder)))
+ (elmo-folder-length folder)))
(wl-summary-update-modeline)
;;
(unless unset-cursor
wl-summary-alike-hashtb)))
(defun wl-summary-insert-headers (folder func mime-decode)
- (let ((entities (elmo-folder-list-message-entities folder nil t))
+ (let ((numbers (elmo-folder-list-messages folder t t))
ov this last alike)
(buffer-disable-undo (current-buffer))
(make-local-variable 'wl-summary-alike-hashtb)
- (setq wl-summary-alike-hashtb (elmo-make-hash (* (length entities) 2)))
+ (setq wl-summary-alike-hashtb (elmo-make-hash (* (length numbers) 2)))
(when mime-decode
(elmo-set-buffer-multibyte default-enable-multibyte-characters))
- (while (setq ov (pop entities))
+ (while (setq ov (elmo-message-entity folder (pop numbers)))
(setq this (funcall func ov))
(and this (setq this (std11-unfold-string this)))
(if (equal last this)