Re: [PATCH v4 6/7] emacs/mua: Let user specify which parts get a header in citations.
authorDavid Edmondson <dme@dme.org>
Wed, 10 Feb 2016 08:07:12 +0000 (08:07 +0000)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 23:21:04 +0000 (16:21 -0700)
fa/5a1597036c966e1f83359fa81ddf348ba31cf1 [new file with mode: 0644]

diff --git a/fa/5a1597036c966e1f83359fa81ddf348ba31cf1 b/fa/5a1597036c966e1f83359fa81ddf348ba31cf1
new file mode 100644 (file)
index 0000000..cbb35d0
--- /dev/null
@@ -0,0 +1,194 @@
+Return-Path: <dme@dme.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id C11776DE0231\r
+ for <notmuch@notmuchmail.org>; Wed, 10 Feb 2016 00:07:19 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.106\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.106 tagged_above=-999 required=5\r
+ tests=[AWL=-0.039, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,\r
+ RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01,\r
+ RCVD_IN_MSPIKE_WL=-0.01, SPF_NEUTRAL=0.652, UNPARSEABLE_RELAY=0.001]\r
+ autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id RpDomREGh3Aq for <notmuch@notmuchmail.org>;\r
+ Wed, 10 Feb 2016 00:07:17 -0800 (PST)\r
+Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com\r
+ [74.125.82.46]) by arlo.cworth.org (Postfix) with ESMTPS id 3D12F6DE021E for\r
+ <notmuch@notmuchmail.org>; Wed, 10 Feb 2016 00:07:16 -0800 (PST)\r
+Received: by mail-wm0-f46.google.com with SMTP id g62so15304741wme.0\r
+ for <notmuch@notmuchmail.org>; Wed, 10 Feb 2016 00:07:16 -0800 (PST)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=dme-org.20150623.gappssmtp.com; s=20150623;\r
+ h=to:subject:in-reply-to:references:from:date:message-id:mime-version\r
+ :content-type; bh=eyZ4zFpTc9jbadsGRx/x5MxsScoPB/WR2wXzmnCddfc=;\r
+ b=xhk8L+Oy7csrICgcO14/w2YU6/PQccSHzty4W2bC++d77sknT5xM5/WVgGVOa+buoi\r
+ BfMhpTh/MAkGO/mhuJURvFtCxuiu4g9ygjiO3fqoqfsG5IW9EwDDVA2/HiMIu1UmI314\r
+ Ckdg8Znwg60Al8sKW0hHQ0GrECMsP/3+8F4lWnVqLbwBCI5/+yWRMCholDjFYo3ZYScR\r
+ E+X5dgDOyjIIBZQRDnfydK0yXDR9WtBCmZ4rhLsx5VpnVVlwMRs2K7U/Cu2nALMT+Vzx\r
+ v0ieZzxstzHZn+47Ydka3We3HposFSFiwUZADowGb75aLdm0lmWk3o8BX6O2yY0gBaHg\r
+ hwrQ==\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=1e100.net; s=20130820;\r
+ h=x-gm-message-state:to:subject:in-reply-to:references:from:date\r
+ :message-id:mime-version:content-type;\r
+ bh=eyZ4zFpTc9jbadsGRx/x5MxsScoPB/WR2wXzmnCddfc=;\r
+ b=CVwqlz3fux71u6dbfXBu4K+NaCfDkehxpHYzl1eMfvEqP6cvpwtgAf6zefKnZ9xFDa\r
+ zXE/a9D/cs73j7YA7uSSzN1Re1AAN7O5g/VBw87OTXFhdx/dId4AWt0zxQYAukSH8g/+\r
+ 38lvVxAonmI/X/NK1wgX+sUCJHOVB7I70maQ5an6U25aBF+dO0U8LvBigFDHPMkBcXp6\r
+ 9GAW+Vu/dTc+7S52iMmL+wwKdXkS+jen1p9PHmD+4c/bSUvwwqYOSAkET1Qqu4QvHxwx\r
+ SH+B+8ysZ7fSBnk71LGA0ICoaWke4i1+e96EkPKBgmzWV5U7/hlJLYQmNkGvdcgQJtQT\r
+ DRvg==\r
+X-Gm-Message-State:\r
+ AG10YOS5pE5a3H63VOqd5gHIY8zJSSsy9NHxgc+sSIbgAD8NXDPcQJUVlOXxdtgn6oXoGA==\r
+X-Received: by 10.194.172.228 with SMTP id bf4mr43156123wjc.109.1455091635408;\r
+  Wed, 10 Feb 2016 00:07:15 -0800 (PST)\r
+Received: from disaster-area.hh.sledj.net\r
+ ([2a01:348:1a2:1:ea39:35ff:fe2c:a227])\r
+ by smtp.gmail.com with ESMTPSA id i1sm1698530wjs.45.2016.02.10.00.07.13\r
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\r
+ Wed, 10 Feb 2016 00:07:13 -0800 (PST)\r
+Received: from localhost (disaster-area.hh.sledj.net [local])\r
+ by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id 7737de0b;\r
+ Wed, 10 Feb 2016 08:07:12 +0000 (UTC)\r
+To: Mark Walters <markwalters1009@gmail.com>, notmuch@notmuchmail.org\r
+Subject: Re: [PATCH v4 6/7] emacs/mua: Let user specify which parts get a\r
+ header in citations.\r
+In-Reply-To: <87twlh5x69.fsf@qmul.ac.uk>\r
+References: <1446894276-7814-1-git-send-email-markwalters1009@gmail.com>\r
+ <1446894276-7814-7-git-send-email-markwalters1009@gmail.com>\r
+ <m2ziv939o7.fsf@dme.org> <87twlh5x69.fsf@qmul.ac.uk>\r
+From: David Edmondson <dme@dme.org>\r
+Date: Wed, 10 Feb 2016 08:07:12 +0000\r
+Message-ID: <m2lh6t2dlb.fsf@dme.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.20\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 10 Feb 2016 08:07:20 -0000\r
+\r
+On Tue, Feb 09 2016, Mark Walters wrote:\r
+> On Tue, 09 Feb 2016, David Edmondson <dme@dme.org> wrote:\r
+>> On Sat, Nov 07 2015, Mark Walters wrote:\r
+>>> From: David Edmondson <dme@dme.org>\r
+>>>\r
+>>> Add a customizable function specifying which parts get a header when\r
+>>> replying, and give some sensible possiblities. These are,\r
+>>>\r
+>>> 1) all parts except multipart/*. (Subparts of a multipart part do\r
+>>> receive a header button.)\r
+>>>\r
+>>> 2) only included text/* parts.\r
+>>>\r
+>>> 3) Exactly as in the show buffer.\r
+>>>\r
+>>> 4) None at all. This means the reply contains a mish-mash of all the\r
+>>> original message's parts.\r
+>>> ---\r
+>>>  emacs/notmuch-mua.el  | 30 ++++++++++++++++++++++++++----\r
+>>>  emacs/notmuch-show.el | 13 +++++++++++++\r
+>>>  2 files changed, 39 insertions(+), 4 deletions(-)\r
+>>>\r
+>>> diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el\r
+>>> index 2f7abb0..a675f47 100644\r
+>>> --- a/emacs/notmuch-mua.el\r
+>>> +++ b/emacs/notmuch-mua.el\r
+>>> @@ -91,6 +91,23 @@ (defcustom notmuch-mua-cite-function 'message-cite-original\r
+>>>    :link '(custom-manual "(message)Insertion Variables")\r
+>>>    :group 'notmuch-reply)\r
+>>>  \r
+>>> +(defcustom notmuch-mua-reply-insert-header-p-function\r
+>>> +  'notmuch-show-reply-insert-header-p-trimmed\r
+>>> +  "Function to decide which parts get a header when replying.\r
+>>> +\r
+>>> +This function specifies which parts of a mime message with\r
+>>> +mutiple parts get a header."\r
+>>> +  :type '(radio (const :tag "All except multipart/* and hidden parts"\r
+>>> +                         notmuch-show-reply-insert-header-p-trimmed)\r
+>>> +          (const :tag "Only for included text parts"\r
+>>> +                         notmuch-show-reply-insert-header-p-minimal)\r
+>>> +          (const :tag "Exactly as in show view"\r
+>>> +                         notmuch-show-insert-header-p)\r
+>>> +          (const :tag "No part headers"\r
+>>> +                         notmuch-show-reply-insert-header-p-never)\r
+>>> +          (function :tag "Other"))\r
+>>> +  :group 'notmuch-reply)\r
+>>> +\r
+>>\r
+>> These are all functions - should we be `declare-function'ing them, given\r
+>> that they come from elsewhere? Presumably the compiler is not clever\r
+>> enough to complain if we don't.\r
+>\r
+> The compiler doesn't seem to complain. But I don't know if we should\r
+> have the declare functions anyway? Any thoughts?\r
+\r
+It doesn't seem to be common, so let's leave it alone.\r
+\r
+> Best wishes\r
+>\r
+> Mark\r
+>\r
+>>\r
+>>>  ;;\r
+>>>  \r
+>>>  (defun notmuch-mua-get-switch-function ()\r
+>>> @@ -221,10 +238,15 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)\r
+>>>    (insert "Date: " date "\n\n")\r
+>>>  \r
+>>>    (insert (with-temp-buffer\r
+>>> -            ;; Don't attempt to clean up messages, excerpt\r
+>>> -            ;; citations, etc. in the original message before\r
+>>> -            ;; quoting.\r
+>>> -            (let ((notmuch-show-insert-text/plain-hook nil))\r
+>>> +            (let\r
+>>> +                ;; Don't attempt to clean up messages, excerpt\r
+>>> +                ;; citations, etc. in the original message before\r
+>>> +                ;; quoting.\r
+>>> +                ((notmuch-show-insert-text/plain-hook nil)\r
+>>> +                 ;; Don't omit long parts.\r
+>>> +                 (notmuch-show-max-text-part-size 0)\r
+>>> +                 ;; Insert headers for parts as appropriate for replying.\r
+>>> +                 (notmuch-show-insert-header-p-function notmuch-mua-reply-insert-header-p-function))\r
+>>>                (notmuch-show-insert-body original (plist-get original :body) 0)\r
+>>>                (buffer-substring-no-properties (point-min) (point-max)))))\r
+>>>  \r
+>>> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el\r
+>>> index f4a65cc..7ff9ed5 100644\r
+>>> --- a/emacs/notmuch-show.el\r
+>>> +++ b/emacs/notmuch-show.el\r
+>>> @@ -959,6 +959,19 @@ (defun notmuch-show-insert-header-p (part hide)\r
+>>>      (not (and (string= mime-type "text/plain")\r
+>>>          (<= (plist-get part :id) 1)))))\r
+>>>  \r
+>>> +(defun notmuch-show-reply-insert-header-p-never (part hide)\r
+>>> +  nil)\r
+>>> +\r
+>>> +(defun notmuch-show-reply-insert-header-p-trimmed (part hide)\r
+>>> +  (let ((mime-type (notmuch-show-mime-type part)))\r
+>>> +    (and (not (notmuch-match-content-type mime-type "multipart/*"))\r
+>>> +   (not hide))))\r
+>>> +\r
+>>> +(defun notmuch-show-reply-insert-header-p-minimal (part hide)\r
+>>> +  (let ((mime-type (notmuch-show-mime-type part)))\r
+>>> +    (and (notmuch-match-content-type mime-type "text/*")\r
+>>> +   (not hide))))\r
+>>> +\r
+>>>  (defun notmuch-show-insert-bodypart (msg part depth &optional hide)\r
+>>>    "Insert the body part PART at depth DEPTH in the current thread.\r
+>>>  \r
+>>> -- \r
+>>> 2.1.4\r