Use without-restriction in with-temporary-notmuch-message-buffer

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.
This commit is contained in:
Marc Fargas 2024-03-14 15:56:49 +01:00 committed by David Bremner
parent 0d2a964ea3
commit 37c022aea0
2 changed files with 41 additions and 8 deletions

View file

@ -145,14 +145,15 @@ Otherwise set it according to `notmuch-fcc-dirs'."
(defmacro with-temporary-notmuch-message-buffer (&rest body) (defmacro with-temporary-notmuch-message-buffer (&rest body)
"Set-up a temporary copy of the current message-mode buffer." "Set-up a temporary copy of the current message-mode buffer."
`(let ((case-fold-search t) `(without-restriction
(let ((case-fold-search t)
(buf (current-buffer)) (buf (current-buffer))
(mml-externalize-attachments message-fcc-externalize-attachments)) (mml-externalize-attachments message-fcc-externalize-attachments))
(with-current-buffer (get-buffer-create " *message temp*") (with-current-buffer (get-buffer-create " *message temp*")
(message-clone-locals buf) ;; for message-encoded-mail-cache (message-clone-locals buf) ;; for message-encoded-mail-cache
(erase-buffer) (erase-buffer)
(insert-buffer-substring buf) (insert-buffer-substring buf)
,@body))) ,@body))))
(defun notmuch-maildir-setup-message-for-saving () (defun notmuch-maildir-setup-message-for-saving ()
"Setup message for saving. "Setup message for saving.

View file

@ -71,4 +71,36 @@ Fcc: MAIL_DIR/sent
<#secure method=pgpmime mode=sign> <#secure method=pgpmime mode=sign>
EOF EOF
test_expect_equal_file EXPECTED OUTPUT.clean 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 test_done