emacs: limit search for attachment to stop at first mime-part

This commit changes the behaviour of notmuch-mua-attachment-check
so that it stops searching for notmuch-mua-attachment-regexp when a
new mime-part is reached.  This avoids false warnings when matching
words occur inside forwarded messages.
This commit is contained in:
Örjan Ekeberg 2019-12-13 00:35:35 +01:00 committed by David Bremner
parent 6cd47227de
commit 1d9ec88d87

View file

@ -137,17 +137,20 @@ Typically this is added to `notmuch-mua-send-hook'."
;; When the message mentions attachment... ;; When the message mentions attachment...
(save-excursion (save-excursion
(message-goto-body) (message-goto-body)
(loop while (re-search-forward notmuch-mua-attachment-regexp (point-max) t) ;; Limit search from reaching other possible parts of the message
;; For every instance of the "attachment" string (let ((search-limit (search-forward "\n<#" nil t)))
;; found, examine the text properties. If the text (message-goto-body)
;; has either a `face' or `syntax-table' property (loop while (re-search-forward notmuch-mua-attachment-regexp search-limit t)
;; then it is quoted text and should *not* cause the ;; For every instance of the "attachment" string
;; user to be asked about a missing attachment. ;; found, examine the text properties. If the text
if (let ((props (text-properties-at (match-beginning 0)))) ;; has either a `face' or `syntax-table' property
(not (or (memq 'syntax-table props) ;; then it is quoted text and should *not* cause the
(memq 'face props)))) ;; user to be asked about a missing attachment.
return t if (let ((props (text-properties-at (match-beginning 0))))
finally return nil)) (not (or (memq 'syntax-table props)
(memq 'face props))))
return t
finally return nil)))
;; ...but doesn't have a part with a filename... ;; ...but doesn't have a part with a filename...
(save-excursion (save-excursion
(message-goto-body) (message-goto-body)