emacs: notmuch-fcc-header-setup: fix regression

With [1: 16b2db09] we lost the (undocumented) option to use no Fcc
header only for From addresses matching a regexp.  This brings back
that feature and documents it.

1: 2021-01-15 16b2db0986
   emacs: various cosmetic improvements
This commit is contained in:
Jonas Bernoulli 2021-08-03 00:10:08 +02:00 committed by David Bremner
parent bd5eef1c6a
commit b03b0d4e41

View file

@ -41,16 +41,17 @@ Three types of values are permitted:
- a string: the value of `notmuch-fcc-dirs' is the Fcc header to
be used.
- a list: the folder is chosen based on the From address of the
current message using a list of regular expressions and
corresponding folders:
- an alist: the folder is chosen based on the From address of
the current message according to an alist mapping regular
expressions to folders or nil:
((\"Sebastian@SSpaeth.de\" . \"privat\")
(\"spaetz@sspaeth.de\" . \"OUTBOX.OSS\")
(\".*\" . \"defaultinbox\"))
If none of the regular expressions match the From address, no
Fcc header will be added.
If none of the regular expressions match the From address, or
if the cdr of the matching entry is nil, then no Fcc header
will be added.
If `notmuch-maildir-use-notmuch-insert' is set (the default) then
the header should be of the form \"folder +tag1 -tag2\" where
@ -74,7 +75,8 @@ directory if it does not exist yet when sending a mail."
(const :tag "No FCC header" nil)
(string :tag "A single folder")
(repeat :tag "A folder based on the From header"
(cons regexp (string :tag "Folder"))))
(cons regexp (choice (const :tag "No FCC header" nil)
(string :tag "Folder")))))
:require 'notmuch-fcc-initialization
:group 'notmuch-send)
@ -105,13 +107,14 @@ Otherwise set it according to `notmuch-fcc-dirs'."
;; Old style - no longer works.
(error "Invalid `notmuch-fcc-dirs' setting (old style)"))
((listp notmuch-fcc-dirs)
(or (seq-some (let ((from (message-field-value "From")))
(if-let ((match (seq-some (let ((from (message-field-value "From")))
(pcase-lambda (`(,regexp . ,folder))
(and (string-match-p regexp from)
folder)))
notmuch-fcc-dirs)
(progn (message "No Fcc header added.")
nil)))
(cons t folder))))
notmuch-fcc-dirs)))
(cdr match)
(message "No Fcc header added.")
nil))
(t
(error "Invalid `notmuch-fcc-dirs' setting (neither string nor list)")))))
(when subdir