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 - a string: the value of `notmuch-fcc-dirs' is the Fcc header to
be used. be used.
- a list: the folder is chosen based on the From address of the - an alist: the folder is chosen based on the From address of
current message using a list of regular expressions and the current message according to an alist mapping regular
corresponding folders: expressions to folders or nil:
((\"Sebastian@SSpaeth.de\" . \"privat\") ((\"Sebastian@SSpaeth.de\" . \"privat\")
(\"spaetz@sspaeth.de\" . \"OUTBOX.OSS\") (\"spaetz@sspaeth.de\" . \"OUTBOX.OSS\")
(\".*\" . \"defaultinbox\")) (\".*\" . \"defaultinbox\"))
If none of the regular expressions match the From address, no If none of the regular expressions match the From address, or
Fcc header will be added. 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 If `notmuch-maildir-use-notmuch-insert' is set (the default) then
the header should be of the form \"folder +tag1 -tag2\" where 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) (const :tag "No FCC header" nil)
(string :tag "A single folder") (string :tag "A single folder")
(repeat :tag "A folder based on the From header" (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 :require 'notmuch-fcc-initialization
:group 'notmuch-send) :group 'notmuch-send)
@ -105,13 +107,14 @@ Otherwise set it according to `notmuch-fcc-dirs'."
;; Old style - no longer works. ;; Old style - no longer works.
(error "Invalid `notmuch-fcc-dirs' setting (old style)")) (error "Invalid `notmuch-fcc-dirs' setting (old style)"))
((listp notmuch-fcc-dirs) ((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)) (pcase-lambda (`(,regexp . ,folder))
(and (string-match-p regexp from) (and (string-match-p regexp from)
folder))) (cons t folder))))
notmuch-fcc-dirs) notmuch-fcc-dirs)))
(progn (message "No Fcc header added.") (cdr match)
nil))) (message "No Fcc header added.")
nil))
(t (t
(error "Invalid `notmuch-fcc-dirs' setting (neither string nor list)"))))) (error "Invalid `notmuch-fcc-dirs' setting (neither string nor list)")))))
(when subdir (when subdir