emacs: fcc should fail at the right time if it doesn't point to a maildir

Throw an error after the maildir is generated but before the message
is sent. This change allows the user to edit the maildir if it fails,
so that it will point to a correct place.

Note that this changes the previous behavior which always overwrote
the existing Fcc line. Now, an Fcc line is only auto-generated if
there isn't one already there.

The ideal change would be to prompt to create a maildir. This should
enable a place for doing that in a future patch.
This commit is contained in:
Jesse Rosenthal 2010-04-26 20:29:27 -04:00 committed by Carl Worth
parent 0d8e26d0e3
commit 9b85872ed4

View file

@ -70,8 +70,11 @@
(let ((subdir (let ((subdir
(cdr (assoc-string (message-fetch-field "from") notmuch-fcc-dirs t)))) (cdr (assoc-string (message-fetch-field "from") notmuch-fcc-dirs t))))
(if (eq subdir nil) (setq subdir (car (car notmuch-fcc-dirs)))) (if (eq subdir nil) (setq subdir (car (car notmuch-fcc-dirs))))
(message-remove-header "Fcc") (unless (message-fetch-field "fcc")
(message-add-header (concat "Fcc: " message-directory subdir))))) (message-add-header (concat "Fcc: " message-directory subdir)))
(unless (notmuch-maildir-fcc-dir-is-maildir-p
(message-fetch-field "fcc"))
(error (format "%s is not a maildir." (message-fetch-field "fcc")))))))
(defun notmuch-maildir-fcc-host-fixer (hostname) (defun notmuch-maildir-fcc-host-fixer (hostname)
(replace-regexp-in-string "/\\|:" (replace-regexp-in-string "/\\|:"