X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=elmo%2Felmo.el;h=a4e4793818143a9201e250a6562f57a27f6cbc68;hb=fb40159a1fc3d4fb1400f8fe3befb1056bc75b8c;hp=752717dae180539be97c5de170af574e90de433a;hpb=6ae5cea002ba8282eabecb4a0c01022a48b5f8bb;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo.el b/elmo/elmo.el index 752717d..a4e4793 100644 --- a/elmo/elmo.el +++ b/elmo/elmo.el @@ -268,13 +268,13 @@ If optional IN-MSGDB is non-nil, retrieve flag information from msgdb.") (elmo-msgdb-list-flagged (elmo-folder-msgdb folder) flag)) (luna-define-method elmo-folder-list-unreads ((folder elmo-folder)) - (elmo-msgdb-list-flagged (elmo-folder-msgdb folder) 'unread)) + (elmo-folder-list-flagged folder 'unread)) (luna-define-method elmo-folder-list-importants ((folder elmo-folder)) - (elmo-msgdb-list-flagged (elmo-folder-msgdb folder) 'important)) + (elmo-folder-list-flagged folder 'important)) (luna-define-method elmo-folder-list-answereds ((folder elmo-folder)) - (elmo-msgdb-list-flagged (elmo-folder-msgdb folder) 'answered)) + (elmo-folder-list-flagged folder 'answered)) (luna-define-generic elmo-folder-list-messages-internal (folder &optional visible-only) @@ -1014,6 +1014,7 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-MARK-ALIST).") (setq failure nil mark (elmo-message-mark src-folder (car numbers)) flag (cond + ((null mark) nil) ((member mark (elmo-msgdb-answered-marks)) 'answered) ;; @@ -1093,8 +1094,7 @@ Return a cons cell of (NUMBER-CROSSPOSTS . NEW-MARK-ALIST).") (if (and (not no-delete) succeeds) (progn (if (and (elmo-folder-delete-messages src-folder succeeds) - (elmo-msgdb-delete-msgs - (elmo-folder-msgdb src-folder) succeeds)) + (elmo-folder-detach-messages src-folder succeeds)) (setq result t) (message "move: delete messages from %s failed." (elmo-folder-name-internal src-folder)) @@ -1135,6 +1135,13 @@ If CACHED is t, message is set as cached." (elmo-message-use-cache-p folder number)) (elmo-folder-set-mark-modified-internal folder t))) +(defun elmo-message-copy-entity (entity) + ;; + (elmo-msgdb-copy-overview-entity entity)) + +(defun elmo-message-entity-set-number (entity number) + (elmo-msgdb-overview-entity-set-number entity number)) + (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. @@ -1228,10 +1235,12 @@ FLAG is a symbol which is one of the following: 'sugar' flag: `read' (set unread flag)") -(defun elmo-message-mark (folder number) +(luna-define-generic elmo-message-mark (folder number) "Get mark of the message. FOLDER is the ELMO folder structure. -NUMBER is a number of the message." +NUMBER is a number of the message.") + +(luna-define-method elmo-message-mark ((folder elmo-folder) number) (elmo-msgdb-get-mark (elmo-folder-msgdb folder) number)) (defun elmo-message-field (folder number field) @@ -1497,8 +1506,8 @@ If update process is interrupted, return nil.") (elmo-folder-process-crosspost folder) 0 ; no updates. ) - (if delete-list (elmo-msgdb-delete-msgs - (elmo-folder-msgdb folder) delete-list)) + (when delete-list + (elmo-folder-detach-messages folder delete-list)) (when new-list (elmo-msgdb-change-mark (elmo-folder-msgdb folder) elmo-msgdb-new-mark @@ -1524,6 +1533,13 @@ If update process is interrupted, return nil.") (elmo-folder-set-killed-list-internal folder killed-list) nil)))) +(luna-define-generic elmo-folder-detach-messages (folder numbers) + "Remove messages with NUMBERS from MSGDB.") + +(luna-define-method elmo-folder-detach-messages ((folder elmo-folder) + numbers) + (elmo-msgdb-delete-msgs (elmo-folder-msgdb folder) numbers)) + (luna-define-generic elmo-folder-length (folder) "Return number of messages in the FOLDER.")