X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-pipe.el;h=feae2dfa475b7e44a868cedcd2223cb1106e639e;hb=a5bcb1f0eb41b558a6b4ed277047adc6b8676a2a;hp=e2dfc04fa5fe4403d5464368a8d247a77f4f8897;hpb=7cab18c122f248c77265f5e47c025ad408a37be8;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-pipe.el b/elmo/elmo-pipe.el index e2dfc04..feae2df 100644 --- a/elmo/elmo-pipe.el +++ b/elmo/elmo-pipe.el @@ -50,7 +50,8 @@ (elmo-make-folder (elmo-match-string 3 name))) (elmo-pipe-folder-set-copy-internal folder - (string= ":" (elmo-match-string 2 name)))) + (string= ":" + (elmo-match-string 2 name)))) folder) (luna-define-method elmo-folder-get-primitive-list ((folder elmo-pipe-folder)) @@ -66,26 +67,21 @@ (elmo-folder-contains-type (elmo-pipe-folder-dst-internal folder) type))) (luna-define-method elmo-folder-msgdb-create ((folder elmo-pipe-folder) - numlist new-mark already-mark - seen-mark important-mark - seen-list) + numlist flag-table) (elmo-folder-msgdb-create (elmo-pipe-folder-dst-internal folder) - numlist new-mark already-mark - seen-mark important-mark seen-list)) + numlist flag-table)) (luna-define-method elmo-folder-append-messages ((folder elmo-pipe-folder) src-folder numbers - unread-marks &optional same-number) (elmo-folder-append-messages (elmo-pipe-folder-dst-internal folder) src-folder numbers - unread-marks same-number)) (luna-define-method elmo-folder-append-buffer ((folder elmo-pipe-folder) - unread &optional number) + &optional flag number) (elmo-folder-append-buffer (elmo-pipe-folder-dst-internal folder) - unread number)) + flag number)) (luna-define-method elmo-message-fetch ((folder elmo-pipe-folder) number strategy @@ -93,6 +89,11 @@ (elmo-message-fetch (elmo-pipe-folder-dst-internal folder) number strategy section outbuf unseen)) +(luna-define-method elmo-folder-clear :after ((folder elmo-pipe-folder) + &optional keep-killed) + (unless keep-killed + (elmo-pipe-folder-copied-list-save folder nil))) + (luna-define-method elmo-folder-delete-messages ((folder elmo-pipe-folder) numbers) (elmo-folder-delete-messages (elmo-pipe-folder-dst-internal folder) @@ -177,15 +178,14 @@ (elmo-folder-list-messages-internal (elmo-pipe-folder-dst-internal folder) nohide)) -(luna-define-method elmo-folder-list-unreads-internal - ((folder elmo-pipe-folder) unread-marks &optional mark-alist) - (elmo-folder-list-unreads-internal (elmo-pipe-folder-dst-internal folder) - unread-marks mark-alist)) +(luna-define-method elmo-folder-list-unreads ((folder elmo-pipe-folder)) + (elmo-folder-list-unreads (elmo-pipe-folder-dst-internal folder))) + +(luna-define-method elmo-folder-list-importants ((folder elmo-pipe-folder)) + (elmo-folder-list-importants (elmo-pipe-folder-dst-internal folder))) -(luna-define-method elmo-folder-list-importants-internal - ((folder elmo-pipe-folder) important-mark) - (elmo-folder-list-importants-internal (elmo-pipe-folder-dst-internal folder) - important-mark)) +(luna-define-method elmo-folder-list-answereds ((folder elmo-pipe-folder)) + (elmo-folder-list-answereds (elmo-pipe-folder-dst-internal folder))) (luna-define-method elmo-folder-status ((folder elmo-pipe-folder)) (elmo-folder-open-internal (elmo-pipe-folder-src-internal folder)) @@ -282,28 +282,53 @@ (elmo-pipe-folder-dst-internal folder) numbers start-number)) (luna-define-method elmo-folder-mark-as-read ((folder elmo-pipe-folder) - numbers) + numbers &optional ignore-flag) (elmo-folder-mark-as-read (elmo-pipe-folder-dst-internal folder) - numbers)) + numbers ignore-flag)) (luna-define-method elmo-folder-unmark-read ((folder elmo-pipe-folder) - numbers) + numbers + &optional ignore-flag) (elmo-folder-unmark-read (elmo-pipe-folder-dst-internal folder) - numbers)) + numbers ignore-flag)) (luna-define-method elmo-folder-unmark-important ((folder elmo-pipe-folder) - numbers) + numbers + &optional ignore-flag) (elmo-folder-unmark-important (elmo-pipe-folder-dst-internal folder) - numbers)) + numbers ignore-flag)) (luna-define-method elmo-folder-mark-as-important ((folder elmo-pipe-folder) - numbers) + numbers + &optional ignore-flag) (elmo-folder-mark-as-important (elmo-pipe-folder-dst-internal folder) - numbers)) + numbers ignore-flag)) (luna-define-method elmo-folder-pack-numbers ((folder elmo-pipe-folder)) (elmo-folder-pack-numbers (elmo-pipe-folder-dst-internal folder))) +(luna-define-method elmo-folder-rename ((folder elmo-pipe-folder) new-name) + (let* ((new-folder (elmo-make-folder new-name))) + (unless (string= (elmo-folder-name-internal + (elmo-pipe-folder-src-internal folder)) + (elmo-folder-name-internal + (elmo-pipe-folder-src-internal new-folder))) + (error "Source folder differ")) + (unless (eq (elmo-folder-type-internal + (elmo-pipe-folder-dst-internal folder)) + (elmo-folder-type-internal + (elmo-pipe-folder-dst-internal new-folder))) + (error "Not same folder type")) + (if (or (file-exists-p (elmo-folder-msgdb-path + (elmo-pipe-folder-dst-internal new-folder))) + (elmo-folder-exists-p + (elmo-pipe-folder-dst-internal new-folder))) + (error "Already exists folder: %s" new-name)) + (elmo-folder-send (elmo-pipe-folder-dst-internal folder) + 'elmo-folder-rename-internal + (elmo-pipe-folder-dst-internal new-folder)) + (elmo-msgdb-rename-path folder new-folder))) + (require 'product) (product-provide (provide 'elmo-pipe) (require 'elmo-version))