]> git.notmuchmail.org Git - notmuch/commitdiff
Use `without-restriction` in `with-temporary-notmuch-message-buffer` master
authorMarc Fargas <telenieko@telenieko.com>
Thu, 14 Mar 2024 14:56:49 +0000 (15:56 +0100)
committerDavid Bremner <david@tethera.net>
Sat, 15 Jun 2024 17:54:04 +0000 (14:54 -0300)
This ensures that the temporary copy of the current message-mode
buffer is whole and not limited by a current restriction.

An example of such restriction is the default one established by
message-mode when composing a reply, that hides the References,
In-Reply-To and similar headers.

emacs/notmuch-maildir-fcc.el
test/T630-emacs-draft.sh

index 5102078849d629a2da37bac13c9a3548153ff996..cf50e8553c9ffc3b7e12ce144f0a1300cd242e62 100644 (file)
@@ -145,14 +145,15 @@ Otherwise set it according to `notmuch-fcc-dirs'."
 
 (defmacro with-temporary-notmuch-message-buffer (&rest body)
   "Set-up a temporary copy of the current message-mode buffer."
-  `(let ((case-fold-search t)
-        (buf (current-buffer))
-        (mml-externalize-attachments message-fcc-externalize-attachments))
-     (with-current-buffer (get-buffer-create " *message temp*")
-       (message-clone-locals buf) ;; for message-encoded-mail-cache
-       (erase-buffer)
-       (insert-buffer-substring buf)
-       ,@body)))
+  `(without-restriction
+     (let ((case-fold-search t)
+          (buf (current-buffer))
+          (mml-externalize-attachments message-fcc-externalize-attachments))
+       (with-current-buffer (get-buffer-create " *message temp*")
+        (message-clone-locals buf) ;; for message-encoded-mail-cache
+        (erase-buffer)
+        (insert-buffer-substring buf)
+        ,@body))))
 
 (defun notmuch-maildir-setup-message-for-saving ()
   "Setup message for saving.
index c443f417c40824786b3fdd38bf7f6f5e2e509039..1fad58a813bd3a151f3a617397d64c46358aec63 100755 (executable)
@@ -71,4 +71,36 @@ Fcc: MAIL_DIR/sent
 <#secure method=pgpmime mode=sign>
 EOF
 test_expect_equal_file EXPECTED OUTPUT.clean
+
+add_email_corpus attachment
+test_begin_subtest "Saving a draft keeps hidden headers"
+test_emacs '(notmuch-mua-new-reply "id:874llc2bkp.fsf@curie.anarc.at")
+            (message-goto-subject)
+            (delete-line)
+            (insert "Subject: draft-test-reply\n")
+           (test-output "DRAFT")
+           (notmuch-draft-postpone)
+           (notmuch-show "subject:draft-test-reply")
+           (notmuch-show-resume-message)
+           (test-output)'
+notmuch_dir_sanitize OUTPUT > OUTPUT.clean
+
+cat <<EOF > EXPECTED
+References: <87d10042pu.fsf@curie.anarc.at> <87woy8vx7i.fsf@tesseract.cs.unb.ca> <87a7v42bv9.fsf@curie.anarc.at> <874llc2bkp.fsf@curie.anarc.at>
+From: Notmuch Test Suite <test_suite@notmuchmail.org>
+To: Antoine Beaupré <anarcat@orangeseeds.org>
+Subject: draft-test-reply
+In-Reply-To: <874llc2bkp.fsf@curie.anarc.at>
+Fcc: MAIL_DIR/sent
+--text follows this line--
+Antoine Beaupré <anarcat@orangeseeds.org> writes:
+
+> And obviously I forget the frigging attachment.
+>
+>
+> PS: don't we have a "you forgot to actually attach the damn file" plugin
+> when we detect the word "attachment" and there's no attach? :p
+EOF
+test_expect_equal_file EXPECTED OUTPUT.clean
+
 test_done