From 95b57b2d5d75bd07b9344e310be0f50f83eaf243 Mon Sep 17 00:00:00 2001 From: Mark Walters Date: Mon, 12 May 2014 23:30:29 +0100 Subject: [PATCH] Re: [PATCH v3 4/9] emacs/mua: Generate improved cited text for replies --- 85/219c51fc39cff67b285b0a724e679d0cc712e5 | 176 ++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 85/219c51fc39cff67b285b0a724e679d0cc712e5 diff --git a/85/219c51fc39cff67b285b0a724e679d0cc712e5 b/85/219c51fc39cff67b285b0a724e679d0cc712e5 new file mode 100644 index 000000000..36906a5a9 --- /dev/null +++ b/85/219c51fc39cff67b285b0a724e679d0cc712e5 @@ -0,0 +1,176 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 1F93D431FBD + for ; Mon, 12 May 2014 15:30:42 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0.201 +X-Spam-Level: +X-Spam-Status: No, score=0.201 tagged_above=-999 required=5 + tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, + FREEMAIL_ENVFROM_END_DIGIT=1, FREEMAIL_FROM=0.001, + RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 5AOvAhbf1rHh for ; + Mon, 12 May 2014 15:30:34 -0700 (PDT) +Received: from mail-we0-f179.google.com (mail-we0-f179.google.com + [74.125.82.179]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id DBDD7431FAF + for ; Mon, 12 May 2014 15:30:33 -0700 (PDT) +Received: by mail-we0-f179.google.com with SMTP id q59so7424529wes.24 + for ; Mon, 12 May 2014 15:30:32 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; + h=from:to:subject:in-reply-to:references:user-agent:date:message-id + :mime-version:content-type; + bh=IAwrBxB0lehoNuzsY1r/2BYt05z4YErfjvibABCoivY=; + b=dltqxc9KAJfXInhsQXrYn4+kc9N59JgXGLzpXNDIIk33t7XwMYcxNti9+eJB612E9U + P7AaojkUhGcEqMeFrMgM+WuKU62U+z3RlDvEoNNalHSEvmFcWgN5COnnjFD/BW46yyMo + bktvYnHFmy4gECKDsp5gFqy/Y5xgjRW3XYwMM1FJGWqpFjjsCArBNoDfSSX4wXRFnD8t + iB26ge1lEAzTE4xWVeE012V/jsXboPKgTx8XYeOk0aLcmELxtRjgBZea4LfPRD4HgLGQ + 7XVmx/Z4LQIXAsS+XwxNzpTdXZ4LNiZIhcoqY688qj9lmKGWdYu7QomgKD2Alt9urZW7 + jLqA== +X-Received: by 10.180.92.103 with SMTP id cl7mr2870880wib.26.1399933832780; + Mon, 12 May 2014 15:30:32 -0700 (PDT) +Received: from localhost (5751dfa2.skybroadband.com. [87.81.223.162]) + by mx.google.com with ESMTPSA id c12sm3550893wib.13.2014.05.12.15.30.31 + for + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Mon, 12 May 2014 15:30:32 -0700 (PDT) +From: Mark Walters +To: David Edmondson , notmuch@notmuchmail.org +Subject: Re: [PATCH v3 4/9] emacs/mua: Generate improved cited text for + replies +In-Reply-To: <1399897769-26809-5-git-send-email-dme@dme.org> +References: <87sixdujkv.fsf@qmul.ac.uk> + <1399897769-26809-1-git-send-email-dme@dme.org> + <1399897769-26809-5-git-send-email-dme@dme.org> +User-Agent: Notmuch/0.15.2+615~g78e3a93 (http://notmuchmail.org) Emacs/23.4.1 + (x86_64-pc-linux-gnu) +Date: Mon, 12 May 2014 23:30:29 +0100 +Message-ID: <87egzyk4u2.fsf@qmul.ac.uk> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Mon, 12 May 2014 22:30:42 -0000 + + +On Mon, 12 May 2014, David Edmondson wrote: +> Use the message display code to generate message text to cite in +> replies. + +So this is the key change. I am trying to work out what the actual +changes are here: in your commit message for the test update 7/9 you say +that the old code only output the first part. My impression of the +deleted code is that that is not the case (but I don't grok cl very +well). + +I think the test change is because in show we do some content-type +guessing of application/octet-stream which the below doesn't do. + +But we may also have some things with mm-inlined-types as mentioned in +my earlier reply. Anyway if you can point out any other cases where it +is changed that would be great. + +If you go for a function deciding which parts to include then it might +be possible to have a midpoint where we are the same as before, and then +tweak the function to get whatever behaviour we think is best. That +might make it easy to see what is tidying/unification and what is +enhancement. + +Incidentally, thank you for splitting this series so finely: I did find +that made it a lot easier to review. + +Best wishes + +Mark + + +> --- +> 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 +> +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch -- 2.26.2