unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: David Edmondson <dme@dme.org>
To: notmuch@notmuchmail.org
Subject: [PATCH v2] emacs/notmuch-mua: Generate improved cited text for replies
Date: Thu,  8 May 2014 07:24:32 +0100	[thread overview]
Message-ID: <1399530272-11857-2-git-send-email-dme@dme.org> (raw)
In-Reply-To: <1399530272-11857-1-git-send-email-dme@dme.org>

Use the message display code to generate message text to cite in
replies.
---
 emacs/notmuch-mua.el | 38 ++++++++------------------------------
 1 file changed, 8 insertions(+), 30 deletions(-)

diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index 95e4a4d..09c922f 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -28,7 +28,7 @@
 
 (eval-when-compile (require 'cl))
 
-(declare-function notmuch-show-insert-bodypart "notmuch-show" (msg part depth &optional hide))
+(declare-function notmuch-show-insert-body "notmuch-show" (msg body depth))
 
 ;;
 
@@ -123,31 +123,6 @@ list."
 	else if (notmuch-match-content-type (plist-get part :content-type) "multipart/*")
 	  do (notmuch-mua-reply-crypto (plist-get part :content))))
 
-(defun notmuch-mua-get-quotable-parts (parts)
-  (loop for part in parts
-	if (notmuch-match-content-type (plist-get part :content-type) "multipart/alternative")
-	  collect (let* ((subparts (plist-get part :content))
-			(types (mapcar (lambda (part) (plist-get part :content-type)) subparts))
-			(chosen-type (car (notmuch-multipart/alternative-choose types))))
-		   (loop for part in (reverse subparts)
-			 if (notmuch-match-content-type (plist-get part :content-type) chosen-type)
-			 return part))
-	else if (notmuch-match-content-type (plist-get part :content-type) "multipart/*")
-	  append (notmuch-mua-get-quotable-parts (plist-get part :content))
-	else if (notmuch-match-content-type (plist-get part :content-type) "text/*")
-	  collect part))
-
-(defun notmuch-mua-insert-quotable-part (message part)
-  ;; We don't want text properties leaking from the show renderer into
-  ;; the reply so we use a temp buffer. Also we don't want hooks, such
-  ;; as notmuch-wash-*, to be run on the quotable part so we set
-  ;; notmuch-show-insert-text/plain-hook to nil.
-  (insert (with-temp-buffer
-	    (let ((notmuch-show-insert-text/plain-hook nil))
-	      ;; Show the part but do not add buttons.
-	      (notmuch-show-insert-bodypart message part 0 'no-buttons))
-	    (buffer-substring-no-properties (point-min) (point-max)))))
-
 ;; There is a bug in emacs 23's message.el that results in a newline
 ;; not being inserted after the References header, so the next header
 ;; is concatenated to the end of it. This function fixes the problem,
@@ -225,10 +200,13 @@ list."
 	(insert "From: " from "\n")
 	(insert "Date: " date "\n\n")
 
-	;; Get the parts of the original message that should be quoted; this includes
-	;; all the text parts, except the non-preferred ones in a multipart/alternative.
-	(let ((quotable-parts (notmuch-mua-get-quotable-parts (plist-get original :body))))
-	  (mapc (apply-partially 'notmuch-mua-insert-quotable-part original) quotable-parts))
+	(insert (with-temp-buffer
+		  ;; Don't attempt to clean up messages, excerpt
+		  ;; citations, etc. in the original message before
+		  ;; quoting.
+		  (let ((notmuch-show-insert-text/plain-hook nil))
+		    (notmuch-show-insert-body original (plist-get original :body) 0)
+		    (buffer-substring-no-properties (point-min) (point-max)))))
 
 	(set-mark (point))
 	(goto-char start)
-- 
2.0.0.rc0

  reply	other threads:[~2014-05-08  6:24 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-10  9:12 reply to messages with message/rfc822 parts Mark Walters
2014-05-07 17:14 ` [RFC] [PATCH] emacs/notmuch-mua: Generate improved cited text for replies David Edmondson
2014-05-08  6:24   ` [PATCH v2] emacs: Improve the cited message included in replies David Edmondson
2014-05-08  6:24     ` David Edmondson [this message]
2014-05-10  8:30     ` Mark Walters
2014-05-12  6:06       ` David Edmondson
2014-05-12  8:11         ` Mark Walters
2014-05-12  8:55           ` David Edmondson
2014-05-12 12:29 ` [PATCH v3 0/9] " David Edmondson
2014-05-12 12:29   ` [PATCH v3 1/9] emacs/show: Re-arrange determination if a part header is necessary David Edmondson
2014-05-12 22:09     ` Mark Walters
2014-05-13  9:47       ` David Edmondson
2014-05-12 12:29   ` [PATCH v3 2/9] emacs/show: Allow the user to decide when part headers should be inserted David Edmondson
2014-05-12 22:15     ` Mark Walters
2014-05-13  9:49       ` David Edmondson
2014-05-12 12:29   ` [PATCH v3 3/9] emacs/show: Accommodate the lack of part header buttons David Edmondson
2014-05-12 22:16     ` Mark Walters
2014-05-12 12:29   ` [PATCH v3 4/9] emacs/mua: Generate improved cited text for replies David Edmondson
2014-05-12 22:30     ` Mark Walters
2014-05-13 10:06       ` David Edmondson
2014-05-12 12:29   ` [PATCH v3 5/9] emacs/show: Remove the 'no-buttons option of `notmuch-show-insert-bodypart' David Edmondson
2014-05-12 22:18     ` Mark Walters
2014-05-12 12:29   ` [PATCH v3 6/9] emacs/mua: Don't insert part headers in citations David Edmondson
2014-05-12 12:29   ` [PATCH v3 7/9] test: Update the test output to accord with the reply changes David Edmondson
2014-05-13 12:16     ` Mark Walters
2014-05-12 12:29   ` [PATCH v3 8/9] emacs/mua: Insert part headers depending on the message David Edmondson
2015-01-19 20:06     ` Mark Walters
2015-01-20  8:44       ` David Edmondson
2014-05-12 12:29   ` [PATCH v3 9/9] test: Update the test output to accord with more reply changes David Edmondson
2014-05-12 22:08   ` [PATCH v3 0/9] emacs: Improve the cited message included in replies Mark Walters
2014-05-13 10:01     ` David Edmondson
2014-05-13 12:05       ` Mark Walters
2016-02-06 21:27   ` David Edmondson
2017-03-12 16:26 ` reply to messages with message/rfc822 parts David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1399530272-11857-2-git-send-email-dme@dme.org \
    --to=dme@dme.org \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).