emacs: limit search for attachment to stop at first mime-part
authorÖrjan Ekeberg <ekeberg@kth.se>
Thu, 12 Dec 2019 23:35:35 +0000 (00:35 +0100)
committerDavid Bremner <david@tethera.net>
Sat, 14 Dec 2019 11:28:42 +0000 (07:28 -0400)
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.

emacs/notmuch-mua.el

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