* mu4e: let mu4e-message-contact-field-matches accept lists of regexps to

match as well.
This commit is contained in:
djcb 2012-10-20 16:07:01 +03:00
parent 37f51515ed
commit 88e76d50df
1 changed files with 16 additions and 9 deletions

View File

@ -170,17 +170,24 @@ function prefers the text part, but this can be changed by setting
"Checks whether any of the of the contacts in field
CFIELD (either :to, :from, :cc or :bcc) of msg MSG matches (with
their name or e-mail address) regular expressions RX. If there is a
match, return t otherwise nil."
match, return non-nil; otherwise return nil. RX can also be a list
of regular expressions, in which case any of those are tried for a
match."
(unless (member cfield '(:to :from :bcc :cc))
(mu4e-error "Not a contacts field (%S)" cfield))
(when (find-if
(lambda (ct)
(let ((name (car ct)) (email (cdr ct)))
(or
(and name (string-match rx name))
(and email (string-match rx email)))))
(mu4e-message-field msg cfield))
t))
(if (listp rx)
;; if rx is a list, try each one of them for a match
(find-if
(lambda (a-rx) (mu4e-message-contact-field-matches msg cfield a-rx))
rx)
;; not a list, check the rx
(find-if
(lambda (ct)
(let ((name (car ct)) (email (cdr ct)))
(or
(and name (string-match rx name))
(and email (string-match rx email)))))
(mu4e-message-field msg cfield))))
(defsubst mu4e-message-part-field (msgpart field)