Re: [PATCH v2 3/4] emacs: Add notmuch-crypto-gpg-program and use it

2018-10-01 Thread David Edmondson
On Sunday, 2018-09-30 at 08:34:29 -03, David Bremner wrote:

> David Edmondson  writes:
>
>> Allow the user to specify the gpg program to use when retriving keys,
>> etc., defaulting to the value of `epg-gpg-program'.
>
> typo in retriving.

Will fix.

> More interestingly, would you mind documenting the use case in the
> commit message? I'm unclear on a couple points
>
> - why one needs a different gpg for key retrieval

I want to use “gpg” for most operations that deal with encryption within
emacs, but when using notmuch remotely over an ssh connection (that is
the UI and database on different machines) I need to update the keyring
on the database machine so that notmuch itself sees the key, not the
keyring on my local machine (arguably I need to update both, but hey),
so use “ssh  gpg” instead.

> - whether the new variable is just for key retrieval, or as the name
>   notmuch-crypto-gpg-program suggests, all crypto operations from notmuch.

Just for key retrieval.

dme.
-- 
She's as sweet as Tupelo honey, she's an angel of the first degree.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: unused/total message counts in hello screen?

2018-10-01 Thread Jeff Templon
William Casarin  writes:

> Jeff Templon  writes:
>
>> An alternative would be if I could toggle the entire page to show just
>> the unread tags (so any tags for which all messages were read would
>> just not show up). Maybe even preferable, that last one.
>
> This can be done setting "notmuch-hello-tag-list-make-query" to "tag:unread"

Thanks, this works well!

JT
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH v2 2/4] emacs: Minor refactoring of crypto code

2018-10-01 Thread David Edmondson
On Sunday, 2018-09-30 at 09:07:42 -03, David Bremner wrote:

> David Edmondson  writes:
>
>
>> -(setq help-msg (concat "Click to retrieve key ID " keyid " from 
>> keyserver and redisplay."
>> +  (setq label (concat "Unknown key ID " keyid " or unsupported 
>> algorithm")
>> +button-action 'notmuch-crypto-sigstatus-error-callback
>> +help-msg (concat "Click to retrieve key ID " keyid
>> + " from keyserver and redisplay.")))
>> +
>
> I wonder if we should still claim we're going to redisplay here, since I
> have the feeling most of the time that won't happen?

Will update.

dme.
-- 
I do believe it's Madame Joy.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH v2 1/4] emacs: Asynchronous retrieval of GPG keys

2018-10-01 Thread David Edmondson
On Saturday, 2018-09-29 at 22:48:38 -03, David Bremner wrote:

> David Edmondson  writes:
>
>> +(defun notmuch-crypto--async-key-sentinel (process event)
>> +  "When the user asks for a GPG key to be retrieved
>> +asynchronously, handle completion of that task."
>> +  (let ((status (process-status process))
>> +(exit-status (process-exit-status process))
>> +(keyid (process-get process :gpg-key-id)))
>> +(when (memq status '(exit signal))
>> +  (message "Getting the GPG key %s asynchronously...%s."
>> +   keyid
>> +   (if (= exit-status 0)
>> +   "completed"
>> + "failed"))
>> +  ;; If the original buffer is still alive and point didn't move
>> +  ;; (i.e. the user didn't move on or away), refresh the buffer to
>> +  ;; show the updated signature status.
>
> This is a pretty conservative condition for the update.  I can live with
> the tradeoff to get non-blocking updates, but I think it will surprise
> people used to the button updating to have it not do so when they move
> the point away. So I guess this behavior should be documented in a more
> user visible way?

The condition is conservative because the refresh redraws the whole
buffer. If it just updated the button directly (which I've been fiddling
with, but don't have working well yet) then we might relax the
condition.

Where would we document the behaviour?

dme.
-- 
He caught a fleeting glimpse of a man, moving uphill pursued by a bus.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH v1 2/2] emacs: Call `notmuch-mua-send-hook' hooks when sending a message

2018-10-01 Thread David Edmondson
On Friday, 2018-09-28 at 21:12:53 -03, David Bremner wrote:

> David Bremner  writes:
>
>>
>> This looks plausible to me, and of course the test passes. I did wonder
>> if this means that people actually using notmuch-user-agent would run
>> the hook twice now?
>
> After a certain amount of re-reading the docstring of
> define-mail-user-agent, and the source for compose-mail, I see that the
> HOOKVAR parameter is something that users of the mail-agent can tweak,
> rather than something that e.g. compose-mail promises to run.

Yes, I came to the same conclusion (this time!).

dme.
-- 
I had my eyes closed in the dark.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v3 0/4] Retrieve GPG keys asynchronously.

2018-10-01 Thread David Edmondson

Retrieve GPG keys asynchronously.

v2:
- Update the label on buttons when they are used to request
  asyncronous key retrieval.
- Always update the buffer when key retrieval completes, even if the
  retrieval failed, so that the label is properly re-generated.

v3:
- Code review comments from bremner:
  - Fix spelling.
  - Fix button label.
  - Update docstring to describe the redisplay conditions.


David Edmondson (4):
  emacs: Asynchronous retrieval of GPG keys
  emacs: Minor refactoring of crypto code
  emacs: Add notmuch-crypto-gpg-program and use it
  emacs: Improve the reporting of key activity

 emacs/notmuch-crypto.el | 195 
 1 file changed, 138 insertions(+), 57 deletions(-)

-- 
2.19.0

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v3 3/4] emacs: Add notmuch-crypto-gpg-program and use it

2018-10-01 Thread David Edmondson
Allow the user to specify the gpg program to use when retrieving keys,
etc., defaulting to the value of `epg-gpg-program'.
---
 emacs/notmuch-crypto.el | 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index f128f30e..99087d0b 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -48,6 +48,11 @@ mode."
   :type 'boolean
   :group 'notmuch-crypto)
 
+(defcustom notmuch-crypto-gpg-program epg-gpg-program
+  "The gpg executable."
+  :type 'string
+  :group 'notmuch-crypto)
+
 (defface notmuch-crypto-part-header
   'class color)
   (background dark))
@@ -149,7 +154,7 @@ by user FROM."
 (with-selected-window window
   (with-current-buffer buffer
(goto-char (point-max))
-   (call-process epg-gpg-program nil t t "--list-keys" fingerprint))
+   (call-process notmuch-crypto-gpg-program nil t t "--list-keys" 
fingerprint))
   (recenter -1
 
 (declare-function notmuch-show-refresh-view "notmuch-show" ( 
reset-state))
@@ -206,7 +211,7 @@ corresponding key when the status button is pressed."
   button (format "Retrieving key %s asynchronously..." keyid))
  (let ((p (make-process :name "notmuch GPG key retrieval"
 :buffer buffer
-:command (list epg-gpg-program "--recv-keys" 
keyid)
+:command (list notmuch-crypto-gpg-program 
"--recv-keys" keyid)
 :connection-type 'pipe
 :sentinel #'notmuch-crypto--async-key-sentinel
 ;; Create the process stopped so that
@@ -218,13 +223,14 @@ corresponding key when the status button is pressed."
(process-put p :notmuch-show-point (point))
(message "Getting the GPG key %s asynchronously..." keyid)
(continue-process p)))
+
   (let ((window (display-buffer buffer)))
(with-selected-window window
  (with-current-buffer buffer
(goto-char (point-max))
-   (call-process epg-gpg-program nil t t "--recv-keys" keyid)
+   (call-process notmuch-crypto-gpg-program nil t t "--recv-keys" 
keyid)
(insert "\n")
-   (call-process epg-gpg-program nil t t "--list-keys" keyid))
+   (call-process notmuch-crypto-gpg-program nil t t "--list-keys" 
keyid))
  (recenter -1))
(notmuch-show-refresh-view)
 
-- 
2.19.0

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v3 1/4] emacs: Asynchronous retrieval of GPG keys

2018-10-01 Thread David Edmondson
Rather than blocking emacs while gpg does its' thing, by default run
key retrieval asynchronously, possibly updating the display of the
message on successful completion.
---
 emacs/notmuch-crypto.el | 85 +++--
 1 file changed, 74 insertions(+), 11 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index fc2b5301..c20fd4f8 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -43,6 +43,11 @@ mode."
   :package-version '(notmuch . "0.25")
   :group 'notmuch-crypto)
 
+(defcustom notmuch-crypto-get-keys-asynchronously t
+  "Retrieve gpg keys asynchronously."
+  :type 'boolean
+  :group 'notmuch-crypto)
+
 (defface notmuch-crypto-part-header
   'class color)
   (background dark))
@@ -113,7 +118,7 @@ mode."
   (let ((keyid (concat "0x" (plist-get sigstatus :keyid
(setq label (concat "Unknown key ID " keyid " or unsupported 
algorithm"))
(setq button-action 'notmuch-crypto-sigstatus-error-callback)
-   (setq help-msg (concat "Click to retrieve key ID " keyid " from 
keyserver and redisplay."
+   (setq help-msg (concat "Click to retrieve key ID " keyid " from 
keyserver."
  ((string= status "bad")
   (let ((keyid (concat "0x" (plist-get sigstatus :keyid
(setq label (concat "Bad signature (claimed key ID " keyid ")"))
@@ -145,19 +150,77 @@ mode."
(call-process epg-gpg-program nil t t "--list-keys" fingerprint))
   (recenter -1
 
+(defun notmuch-crypto--async-key-sentinel (process event)
+  "When the user asks for a GPG key to be retrieved
+asynchronously, handle completion of that task.
+
+If the retrieval is successful, the thread where the retrieval
+was initiated is still displayed and the cursor has not moved,
+redisplay the thread."
+  (let ((status (process-status process))
+   (exit-status (process-exit-status process))
+   (keyid (process-get process :gpg-key-id)))
+(when (memq status '(exit signal))
+  (message "Getting the GPG key %s asynchronously...%s."
+  keyid
+  (if (= exit-status 0)
+  "completed"
+"failed"))
+  ;; If the original buffer is still alive and point didn't move
+  ;; (i.e. the user didn't move on or away), refresh the buffer to
+  ;; show the updated signature status.
+  (let ((show-buffer (process-get process :notmuch-show-buffer))
+   (show-point (process-get process :notmuch-show-point)))
+   (when (and (bufferp show-buffer)
+  (buffer-live-p show-buffer)
+  (= show-point
+ (with-current-buffer show-buffer
+   (point
+ (with-current-buffer show-buffer
+   (notmuch-show-refresh-view)))
+
+(defun notmuch-crypto--set-button-label (button label)
+  "Set the text displayed in BUTTON to LABEL."
+  (save-excursion
+(let ((inhibit-read-only t))
+  ;; This knows rather too much about how we typically format
+  ;; buttons.
+  (goto-char (button-start button))
+  (forward-char 2)
+  (delete-region (point) (- (button-end button) 2))
+  (insert label
+
 (defun notmuch-crypto-sigstatus-error-callback (button)
   (let* ((sigstatus (button-get button :notmuch-sigstatus))
 (keyid (concat "0x" (plist-get sigstatus :keyid)))
-(buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
-(window (display-buffer buffer t nil)))
-(with-selected-window window
-  (with-current-buffer buffer
-   (goto-char (point-max))
-   (call-process epg-gpg-program nil t t "--recv-keys" keyid)
-   (insert "\n")
-   (call-process epg-gpg-program nil t t "--list-keys" keyid))
-  (recenter -1))
-(notmuch-show-refresh-view)))
+(buffer (get-buffer-create "*notmuch-crypto-gpg-out*")))
+(if notmuch-crypto-get-keys-asynchronously
+   (progn
+ (notmuch-crypto--set-button-label
+  button (format "Retrieving key %s asynchronously..." keyid))
+ (let ((p (make-process :name "notmuch GPG key retrieval"
+:buffer buffer
+:command (list epg-gpg-program "--recv-keys" 
keyid)
+:connection-type 'pipe
+:sentinel #'notmuch-crypto--async-key-sentinel
+;; Create the process stopped so that
+;; we have time to store the key id,
+;; etc. on it.
+:stop t)))
+   (process-put p :gpg-key-id keyid)
+   (process-put p :notmuch-show-buffer (current-buffer))
+   (process-put p :notmuch-show-point (point))
+   (message "Getting the GPG key %s asynchronously..." keyid)
+   (continue-process p)))
+  (let ((window (display-buffer buffer t nil)))
+   (with-selected-window window
+

[PATCH v3 4/4] emacs: Improve the reporting of key activity

2018-10-01 Thread David Edmondson
Improve the information provided about key retrieval and key validity.
---
 emacs/notmuch-crypto.el | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index 99087d0b..553ddca8 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -147,13 +147,16 @@ by user FROM."
   (insert "\n"))
 
 (defun notmuch-crypto-sigstatus-good-callback (button)
-  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+  (let* ((id (notmuch-show-get-message-id))
+(sigstatus (button-get button :notmuch-sigstatus))
 (fingerprint (concat "0x" (plist-get sigstatus :fingerprint)))
 (buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
 (window (display-buffer buffer)))
 (with-selected-window window
   (with-current-buffer buffer
(goto-char (point-max))
+   (insert (format "-- Key %s in message %s:\n"
+   fingerprint id))
(call-process notmuch-crypto-gpg-program nil t t "--list-keys" 
fingerprint))
   (recenter -1
 
@@ -209,10 +212,14 @@ corresponding key when the status button is pressed."
(progn
  (notmuch-crypto--set-button-label
   button (format "Retrieving key %s asynchronously..." keyid))
+ (with-current-buffer buffer
+   (goto-char (point-max))
+   (insert (format "--- Retrieving key %s:\n" keyid)))
  (let ((p (make-process :name "notmuch GPG key retrieval"
+:connection-type 'pipe
 :buffer buffer
+:stderr buffer
 :command (list notmuch-crypto-gpg-program 
"--recv-keys" keyid)
-:connection-type 'pipe
 :sentinel #'notmuch-crypto--async-key-sentinel
 ;; Create the process stopped so that
 ;; we have time to store the key id,
@@ -228,6 +235,7 @@ corresponding key when the status button is pressed."
(with-selected-window window
  (with-current-buffer buffer
(goto-char (point-max))
+   (insert (format "--- Retrieving key %s:\n" keyid))
(call-process notmuch-crypto-gpg-program nil t t "--recv-keys" 
keyid)
(insert "\n")
(call-process notmuch-crypto-gpg-program nil t t "--list-keys" 
keyid))
-- 
2.19.0

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v3 2/4] emacs: Minor refactoring of crypto code

2018-10-01 Thread David Edmondson
---
 emacs/notmuch-crypto.el | 96 +
 1 file changed, 50 insertions(+), 46 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index c20fd4f8..f128f30e 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -96,36 +96,40 @@ mode."
   :supertype 'notmuch-button-type)
 
 (defun notmuch-crypto-insert-sigstatus-button (sigstatus from)
+  "Insert a button describing the signature status SIGSTATUS sent
+by user FROM."
   (let* ((status (plist-get sigstatus :status))
-(help-msg nil)
-(label "Signature not processed")
 (face 'notmuch-crypto-signature-unknown)
-(button-action (lambda (button) (message (button-get button 
'help-echo)
+(button-action (lambda (button) (message (button-get button 
'help-echo
+(keyid (concat "0x" (plist-get sigstatus :keyid)))
+label help-msg)
 (cond
  ((string= status "good")
-  (let ((fingerprint (concat "0x" (plist-get sigstatus :fingerprint
-   ;; if userid present, userid has full or greater validity
-   (if (plist-member sigstatus :userid)
-   (let ((userid (plist-get sigstatus :userid)))
- (setq label (concat "Good signature by: " userid))
- (setq face 'notmuch-crypto-signature-good))
- (progn
-   (setq label (concat "Good signature by key: " fingerprint))
-   (setq face 'notmuch-crypto-signature-good-key)))
-   (setq button-action 'notmuch-crypto-sigstatus-good-callback)
-   (setq help-msg (concat "Click to list key ID 0x" fingerprint "."
+  (let ((fingerprint (concat "0x" (plist-get sigstatus :fingerprint)))
+   (userid (plist-get sigstatus :userid)))
+   ;; If userid is present it has full or greater validity.
+   (if userid
+   (setq label (concat "Good signature by: " userid)
+ face 'notmuch-crypto-signature-good)
+ (setq label (concat "Good signature by key: " fingerprint)
+   face 'notmuch-crypto-signature-good-key))
+   (setq button-action 'notmuch-crypto-sigstatus-good-callback
+ help-msg (concat "Click to list key ID 0x" fingerprint "."
+
  ((string= status "error")
-  (let ((keyid (concat "0x" (plist-get sigstatus :keyid
-   (setq label (concat "Unknown key ID " keyid " or unsupported 
algorithm"))
-   (setq button-action 'notmuch-crypto-sigstatus-error-callback)
-   (setq help-msg (concat "Click to retrieve key ID " keyid " from 
keyserver."
+  (setq label (concat "Unknown key ID " keyid " or unsupported algorithm")
+   button-action 'notmuch-crypto-sigstatus-error-callback
+   help-msg (concat "Click to retrieve key ID " keyid
+" from keyserver.")))
+
  ((string= status "bad")
-  (let ((keyid (concat "0x" (plist-get sigstatus :keyid
-   (setq label (concat "Bad signature (claimed key ID " keyid ")"))
-   (setq face 'notmuch-crypto-signature-bad)))
+  (setq label (concat "Bad signature (claimed key ID " keyid ")")
+   face 'notmuch-crypto-signature-bad))
+
  (t
   (setq label (concat "Unknown signature status"
  (if status (concat ": " status))
+
 (insert-button
  (concat "[ " label " ]")
  :type 'notmuch-crypto-status-button-type
@@ -134,22 +138,22 @@ mode."
  'mouse-face face
  'action button-action
  :notmuch-sigstatus sigstatus
- :notmuch-from from)
-(insert "\n")))
-
-(declare-function notmuch-show-refresh-view "notmuch-show" ( 
reset-state))
+ :notmuch-from from))
+  (insert "\n"))
 
 (defun notmuch-crypto-sigstatus-good-callback (button)
   (let* ((sigstatus (button-get button :notmuch-sigstatus))
 (fingerprint (concat "0x" (plist-get sigstatus :fingerprint)))
 (buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
-(window (display-buffer buffer t nil)))
+(window (display-buffer buffer)))
 (with-selected-window window
   (with-current-buffer buffer
(goto-char (point-max))
(call-process epg-gpg-program nil t t "--list-keys" fingerprint))
   (recenter -1
 
+(declare-function notmuch-show-refresh-view "notmuch-show" ( 
reset-state))
+
 (defun notmuch-crypto--async-key-sentinel (process event)
   "When the user asks for a GPG key to be retrieved
 asynchronously, handle completion of that task.
@@ -191,6 +195,8 @@ redisplay the thread."
   (insert label
 
 (defun notmuch-crypto-sigstatus-error-callback (button)
+  "When signature validation has failed, try to retrieve the
+corresponding key when the status button is pressed."
   (let* ((sigstatus (button-get button :notmuch-sigstatus))
 (keyid (concat "0x" (plist-get sigstatus :keyid)))
 (buffer (get-buffer-create "*notmuch-crypto-gpg-out*")))
@@ -212,7 +218,7 @@ redisplay the thread."
(process-put p :notmuch-show-point 

Re: [PATCH v2 3/4] emacs: Add notmuch-crypto-gpg-program and use it

2018-10-01 Thread David Bremner
David Edmondson  writes:

> On Sunday, 2018-09-30 at 08:34:29 -03, David Bremner wrote:
>
>> David Edmondson  writes:
>>
>>> Allow the user to specify the gpg program to use when retriving keys,
>>> etc., defaulting to the value of `epg-gpg-program'.
>>
>> typo in retriving.
>
> Will fix.
>
>> More interestingly, would you mind documenting the use case in the
>> commit message? I'm unclear on a couple points
>>
>> - why one needs a different gpg for key retrieval
>
> I want to use “gpg” for most operations that deal with encryption within
> emacs, but when using notmuch remotely over an ssh connection (that is
> the UI and database on different machines) I need to update the keyring
> on the database machine so that notmuch itself sees the key, not the
> keyring on my local machine (arguably I need to update both, but hey),
> so use “ssh  gpg” instead.
>
>> - whether the new variable is just for key retrieval, or as the name
>>   notmuch-crypto-gpg-program suggests, all crypto operations from notmuch.
>
> Just for key retrieval.

I guess renaming the variable and documenting it as used only for key
retrieval would help both questions here.
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH v2 1/4] emacs: Asynchronous retrieval of GPG keys

2018-10-01 Thread David Bremner
David Edmondson  writes:


> The condition is conservative because the refresh redraws the whole
> buffer. If it just updated the button directly (which I've been fiddling
> with, but don't have working well yet) then we might relax the
> condition.
>
> Where would we document the behaviour?

In the appropriate docstring?
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v1 1/1] reply: Include sender as recipient if they were the original recipient

2018-10-01 Thread David Edmondson
When generating a reply message, if the user was the originator and
only recipient of the original message, include the user as a
recipient of the reply.
---
 notmuch-reply.c  | 8 
 test/T220-reply.sh   | 1 +
 test/T230-reply-to-sender.sh | 1 +
 test/T310-emacs.sh   | 5 ++---
 test/T350-crypto.sh  | 5 +++--
 5 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/notmuch-reply.c b/notmuch-reply.c
index 75cf7ecb..d87ec06d 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -369,6 +369,14 @@ add_recipients_from_message (GMimeMessage *reply,
}
 }
 
+/* If no recipients were added but we found one of the user's
+ * addresses to use as a from address then the message is from the
+ * user to the user - add the discovered from address to the list
+ * of recipients so that the reply goes back to the user.
+ */
+if (n == 0 && from_addr)
+   g_mime_message_add_recipient (reply, GMIME_ADDRESS_TYPE_TO, NULL, 
from_addr);
+
 return from_addr;
 }
 
diff --git a/test/T220-reply.sh b/test/T220-reply.sh
index ebe710f9..4db3a958 100755
--- a/test/T220-reply.sh
+++ b/test/T220-reply.sh
@@ -180,6 +180,7 @@ test_expect_equal "$output" "From: Notmuch Test Suite 

 References: <${gen_msg_id}>
 
diff --git a/test/T230-reply-to-sender.sh b/test/T230-reply-to-sender.sh
index 134a1063..bbeaa2b9 100755
--- a/test/T230-reply-to-sender.sh
+++ b/test/T230-reply-to-sender.sh
@@ -203,6 +203,7 @@ test_expect_equal "$output" "From: Notmuch Test Suite 

 References: <${gen_msg_id}>
 
diff --git a/test/T310-emacs.sh b/test/T310-emacs.sh
index 5935819f..cb9e99a5 100755
--- a/test/T310-emacs.sh
+++ b/test/T310-emacs.sh
@@ -610,7 +610,7 @@ test_emacs "(let ((message-hidden-headers '()))
(test-output))"
 cat 
 Fcc: ${MAIL_DIR}/sent
@@ -623,7 +623,6 @@ EOF
 test_expect_equal_file EXPECTED OUTPUT
 
 test_begin_subtest "Reply within emacs to message from self"
-test_subtest_known_broken
 add_message '[from]="test_su...@notmuchmail.org"' \
'[to]="test_su...@notmuchmail.org"'
 test_emacs "(let ((message-hidden-headers '()))
@@ -657,7 +656,7 @@ test_emacs "(let ((message-hidden-headers '()))
  (test-output))"
 cat  
OUTPUT.clean
+grep -v -e '^In-Reply-To:' -e '^References:' -e '^Fcc:' < OUTPUT > OUTPUT.clean
 cat 
-- 
2.11.0

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


[PATCH v1 0/1] Reply to a message including only self should include self.

2018-10-01 Thread David Edmondson
This was the cause of a failure in one of the emacs tests, but it's
notmuch itself that is misbehaving.

David Edmondson (1):
  reply: Include sender as recipient if they were the original recipient

 notmuch-reply.c  | 8 
 test/T220-reply.sh   | 1 +
 test/T230-reply-to-sender.sh | 1 +
 test/T310-emacs.sh   | 5 ++---
 test/T350-crypto.sh  | 5 +++--
 5 files changed, 15 insertions(+), 5 deletions(-)

-- 
2.11.0

___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch