X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-flag.el;h=4061dd24ece16c3123a7e794d67b759b77219325;hb=4b6415dfa236d5d0744a1079edee169f33152aa1;hp=23344bb521ab49d36306e8710d8dcef1632ccbed;hpb=f948487059db5a1a292bec7d531a0aa39c09e8f4;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-flag.el b/elmo/elmo-flag.el index 23344bb..4061dd2 100644 --- a/elmo/elmo-flag.el +++ b/elmo/elmo-flag.el @@ -213,6 +213,13 @@ &optional flag number) (error "Cannot append to the flag folder")) +(luna-define-method elmo-folder-unset-flag :before ((folder elmo-flag-folder) + numbers + flag + &optional is-local) + (when (eq flag (elmo-flag-folder-flag-internal folder)) + (error "Cannot unset flag `%s' in this folder." flag))) + ;;; Utilities (defmacro elmo-flag-get-folder (flag) @@ -371,7 +378,8 @@ If optional DELETE-IF-NONE is non-nil, delete message from flag folder when the message is not flagged in any folder. If DELETE-IF-NONE is a symbol `always', delete message without flagged in other folder." - (unless (eq (elmo-folder-type-internal folder) 'flag) + (unless (and (eq (elmo-folder-type-internal folder) 'flag) + (eq (elmo-flag-folder-flag-internal folder) flag)) (let ((flag-folder (elmo-flag-get-folder flag)) elem key) (when flag-folder