* mu4e: when moving messages, always reset the N flag

(since N (new) messages cannot have any other flags, you would loose
  e.g. the T flag when moving to trash; now, we remove the N flag, and the T
  flag remains)
This commit is contained in:
djcb 2012-06-23 10:11:18 +03:00
parent 59433c91cb
commit e792c61f32
2 changed files with 10 additions and 8 deletions

View File

@ -249,16 +249,18 @@ If NO-CONFIRMATION is non-nil, don't ask user for confirmation."
(maphash
(lambda (docid val)
(let ((mark (car val)) (target (cdr val)))
;; note: whenever you do something with the message,
;; it looses its N (new) flag
(case mark
(move (mu4e~proc-move docid target))
(move (mu4e~proc-move docid target "-N"))
(read (mu4e~proc-move docid nil "+S-u-N"))
(unread (mu4e~proc-move docid nil "-S+u"))
(unread (mu4e~proc-move docid nil "-S+u-N"))
(flag (mu4e~proc-move docid nil "+F-u-N"))
(unflag (mu4e~proc-move docid nil "-F"))
(unflag (mu4e~proc-move docid nil "-F-N"))
(trash
(unless mu4e-trash-folder
(error "`mu4e-trash-folder' not set"))
(mu4e~proc-move docid mu4e-trash-folder "+T"))
(mu4e~proc-move docid mu4e-trash-folder "+T-N"))
(delete (mu4e~proc-remove docid))
(otherwise (error "Unrecognized mark %S" mark)))))
mu4e~mark-map))
@ -308,4 +310,3 @@ action', return nil means 'don't do anything'"
(provide 'mu4e-mark)
;; End of mu4e-mark.el

View File

@ -707,7 +707,8 @@ mu_maildir_get_flags_from_path (const char *path)
* /home/user/Maildir/foo/bar/new/abc and flags == MU_FLAG_REPLIED
* => /home/user/Maildir/foo/bar/cur
*
* so only difference is whether MuFlags matches MU_FLAG_NEW is set or not
* so the difference is whether MuFlags matches MU_FLAG_NEW is set or
* not; and in the latter case, no other flags are allowed.
*
*/
static gchar*