unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH v3] (notmuch-show "id:doesnotexist") should not throw an error.
@ 2016-02-11  8:33 David Edmondson
  2016-02-11  8:33 ` [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show' David Edmondson
  0 siblings, 1 reply; 5+ messages in thread
From: David Edmondson @ 2016-02-11  8:33 UTC (permalink / raw)
  To: notmuch


(notmuch-show "id:doesnotexist") should not throw an error.

This is a followup to id:"874nw0ltwz.fsf@praet.org" and
id:"cuntx91fwaa.fsf@hotblack-desiato.hh.sledj.net".

The originally proposed change (to have id: links call `notmuch-show'
rather than `notmuch-search') was already made, but the difficulties
with links that generated no results was not addressed. This patch
aims to do that.

v2:
- Re-worked to `ding' rather than throwing an error.
- Re-jig the relationship between `notmuch-show',
  `notmuch-show-refresh-view' and `notmuch-show--build-buffer'.
- Various buffer local variables no longer need to be `permanent-local'.

v3:
- Comment re-wording.


David Edmondson (1):
  emacs: Report a lack of matches when calling `notmuch-show'.

 emacs/notmuch-show.el | 144 +++++++++++++++++++++++++++++---------------------
 emacs/notmuch.el      |   6 ++-
 2 files changed, 89 insertions(+), 61 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show'.
  2016-02-11  8:33 [PATCH v3] (notmuch-show "id:doesnotexist") should not throw an error David Edmondson
@ 2016-02-11  8:33 ` David Edmondson
  2016-02-12 17:14   ` Tomi Ollila
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: David Edmondson @ 2016-02-11  8:33 UTC (permalink / raw)
  To: notmuch

If the basic query passed to `notmuch-show' generates no results, ring
the bell and inform the user that no messages matched the query rather
than displaying an empty buffer and showing an obscure error.

Similarly when refreshing a `notmuch-show' buffer and no messages match.
---
 emacs/notmuch-show.el | 144 +++++++++++++++++++++++++++++---------------------
 emacs/notmuch.el      |   6 ++-
 2 files changed, 89 insertions(+), 61 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 3345878..4629c64 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -153,27 +153,21 @@ indentation."
 
 (defvar notmuch-show-thread-id nil)
 (make-variable-buffer-local 'notmuch-show-thread-id)
-(put 'notmuch-show-thread-id 'permanent-local t)
 
 (defvar notmuch-show-parent-buffer nil)
 (make-variable-buffer-local 'notmuch-show-parent-buffer)
-(put 'notmuch-show-parent-buffer 'permanent-local t)
 
 (defvar notmuch-show-query-context nil)
 (make-variable-buffer-local 'notmuch-show-query-context)
-(put 'notmuch-show-query-context 'permanent-local t)
 
 (defvar notmuch-show-process-crypto nil)
 (make-variable-buffer-local 'notmuch-show-process-crypto)
-(put 'notmuch-show-process-crypto 'permanent-local t)
 
 (defvar notmuch-show-elide-non-matching-messages nil)
 (make-variable-buffer-local 'notmuch-show-elide-non-matching-messages)
-(put 'notmuch-show-elide-non-matching-messages 'permanent-local t)
 
 (defvar notmuch-show-indent-content t)
 (make-variable-buffer-local 'notmuch-show-indent-content)
-(put 'notmuch-show-indent-content 'permanent-local t)
 
 (defvar notmuch-show-attachment-debug nil
   "If t log stdout and stderr from attachment handlers
@@ -1197,71 +1191,101 @@ non-nil.
 The optional BUFFER-NAME provides the name of the buffer in
 which the message thread is shown. If it is nil (which occurs
 when the command is called interactively) the argument to the
-function is used."
+function is used.
+
+Returns the buffer containing the messages, or NIL if no messages
+matched."
   (interactive "sNotmuch show: \nP")
   (let ((buffer-name (generate-new-buffer-name
 		      (or buffer-name
 			  (concat "*notmuch-" thread-id "*")))))
     (switch-to-buffer (get-buffer-create buffer-name))
-    ;; Set the default value for `notmuch-show-process-crypto' in this
-    ;; buffer.
-    (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
-    ;; Set the default value for
-    ;; `notmuch-show-elide-non-matching-messages' in this buffer. If
-    ;; elide-toggle is set, invert the default.
-    (setq notmuch-show-elide-non-matching-messages notmuch-show-only-matching-messages)
-    (if elide-toggle
-	(setq notmuch-show-elide-non-matching-messages (not notmuch-show-elide-non-matching-messages)))
+    ;; No need to track undo information for this buffer.
+    (setq buffer-undo-list t)
+
+    (notmuch-show-mode)
 
+    ;; Set various buffer local variables to their appropriate initial
+    ;; state. Do this after enabling `notmuch-show-mode' so that they
+    ;; aren't wiped out.
     (setq notmuch-show-thread-id thread-id
 	  notmuch-show-parent-buffer parent-buffer
-	  notmuch-show-query-context query-context)
-    (notmuch-show-build-buffer)
-    (notmuch-show-goto-first-wanted-message)
-    (current-buffer)))
+	  notmuch-show-query-context query-context
 
-(defun notmuch-show-build-buffer ()
-  (let ((inhibit-read-only t))
+	  notmuch-show-process-crypto notmuch-crypto-process-mime
+	  ;; If `elide-toggle', invert the default value.
+	  notmuch-show-elide-non-matching-messages
+	  (if elide-toggle
+	      (not notmuch-show-only-matching-messages)
+	    notmuch-show-only-matching-messages))
 
-    (notmuch-show-mode)
     (add-hook 'post-command-hook #'notmuch-show-command-hook nil t)
-
-    ;; Don't track undo information for this buffer
-    (set 'buffer-undo-list t)
+    (jit-lock-register #'notmuch-show-buttonise-links)
 
     (notmuch-tag-clear-cache)
-    (erase-buffer)
-    (goto-char (point-min))
-    (save-excursion
-      (let* ((basic-args (list notmuch-show-thread-id))
-	     (args (if notmuch-show-query-context
-		       (append (list "\'") basic-args
-			       (list "and (" notmuch-show-query-context ")\'"))
-		     (append (list "\'") basic-args (list "\'"))))
-	     (cli-args (cons "--exclude=false"
-			     (when notmuch-show-elide-non-matching-messages
-			       (list "--entire-thread=false")))))
-
-	(notmuch-show-insert-forest (notmuch-query-get-threads (append cli-args args)))
-	;; If the query context reduced the results to nothing, run
-	;; the basic query.
-	(when (and (eq (buffer-size) 0)
-		   notmuch-show-query-context)
-	  (notmuch-show-insert-forest
-	   (notmuch-query-get-threads (append cli-args basic-args)))))
-
-      (jit-lock-register #'notmuch-show-buttonise-links)
-
-      (notmuch-show-mapc (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
+
+    (let ((inhibit-read-only t))
+      (if (notmuch-show--build-buffer)
+	  ;; Messages were inserted into the buffer.
+	  (current-buffer)
+
+	;; No messages were inserted - presumably none matched the
+	;; query.
+	(kill-buffer (current-buffer))
+	(ding)
+	(message "No messages matched the query!")
+	nil))))
+
+(defun notmuch-show--build-buffer (&optional state)
+  "Display messages matching the current buffer context.
+
+Apply the previously saved STATE if supplied, otherwise show the
+first relevant message.
+
+If no messages match the query return NIL."
+  (let* ((basic-args (list notmuch-show-thread-id))
+	 (args (if notmuch-show-query-context
+		   (append (list "\'") basic-args
+			   (list "and (" notmuch-show-query-context ")\'"))
+		 (append (list "\'") basic-args (list "\'"))))
+	 (cli-args (cons "--exclude=false"
+			 (when notmuch-show-elide-non-matching-messages
+			   (list "--entire-thread=false"))))
+
+	 (forest (or (notmuch-query-get-threads (append cli-args args))
+		     ;; If a query context reduced the number of
+		     ;; results to zero, try again without it.
+		     (and notmuch-show-query-context
+			  (notmuch-query-get-threads (append cli-args basic-args)))))
+
+	 ;; Must be reset every time we are going to start inserting
+	 ;; messages into the buffer.
+	 (notmuch-show-previous-subject ""))
+
+    (when forest
+      (notmuch-show-insert-forest forest)
+
+      ;; Store the original tags for each message so that we can
+      ;; display changes.
+      (notmuch-show-mapc
+       (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
 
       ;; Set the header line to the subject of the first message.
       (setq header-line-format
 	    (replace-regexp-in-string "%" "%%"
-			    (notmuch-sanitize
-			     (notmuch-show-strip-re
-			      (notmuch-show-get-subject)))))
+				      (notmuch-sanitize
+				       (notmuch-show-strip-re
+					(notmuch-show-get-subject)))))
 
-      (run-hooks 'notmuch-show-hook))))
+      (run-hooks 'notmuch-show-hook)
+
+      (if state
+	  (notmuch-show-apply-state state)
+	;; With no state to apply, just go to the first message.
+	(notmuch-show-goto-first-wanted-message)))
+
+    ;; Report back to the caller whether any messages matched.
+    forest))
 
 (defun notmuch-show-capture-state ()
   "Capture the state of the current buffer.
@@ -1320,17 +1344,17 @@ reset based on the original query."
   (let ((inhibit-read-only t)
 	(state (unless reset-state
 		 (notmuch-show-capture-state))))
-    ;; erase-buffer does not seem to remove overlays, which can lead
+    ;; `erase-buffer' does not seem to remove overlays, which can lead
     ;; to weird effects such as remaining images, so remove them
     ;; manually.
     (remove-overlays)
     (erase-buffer)
-    (notmuch-show-build-buffer)
-    (if state
-	(notmuch-show-apply-state state)
-      ;; We're resetting state, so navigate to the first open message
-      ;; and mark it read, just like opening a new show buffer.
-      (notmuch-show-goto-first-wanted-message))))
+
+    (unless (notmuch-show--build-buffer state)
+      ;; No messages were inserted.
+      (kill-buffer (current-buffer))
+      (ding)
+      (message "Refreshing the buffer resulted in no messages!"))))
 
 (defvar notmuch-show-stash-map
   (let ((map (make-sparse-keymap)))
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 463b926..3100b97 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -458,7 +458,11 @@ no messages in the region then return nil."
   (notmuch-search-properties-in-region :subject beg end))
 
 (defun notmuch-search-show-thread (&optional elide-toggle)
-  "Display the currently selected thread."
+  "Display the currently selected thread.
+
+With a prefix argument, invert the default value of
+`notmuch-show-only-matching-messages' when displaying the
+thread."
   (interactive "P")
   (let ((thread-id (notmuch-search-find-thread-id))
 	(subject (notmuch-search-find-subject)))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show'.
  2016-02-11  8:33 ` [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show' David Edmondson
@ 2016-02-12 17:14   ` Tomi Ollila
  2016-02-14 21:29   ` Mark Walters
  2016-02-20 13:23   ` David Bremner
  2 siblings, 0 replies; 5+ messages in thread
From: Tomi Ollila @ 2016-02-12 17:14 UTC (permalink / raw)
  To: David Edmondson, notmuch

On Thu, Feb 11 2016, David Edmondson <dme@dme.org> wrote:

> If the basic query passed to `notmuch-show' generates no results, ring
> the bell and inform the user that no messages matched the query rather
> than displaying an empty buffer and showing an obscure error.

Looks good (the parts I understood) and works fine (testing with
devel/try-emacs-mua). 

FYI: when testing with (eval-last-sexp) interactively (c-x c-e)
message does not appear in minibuffer -- since the following 'nil'
will take its place -- the msg is in *Messages* buffer

Tomi

>
> Similarly when refreshing a `notmuch-show' buffer and no messages match.
> ---
>  emacs/notmuch-show.el | 144 +++++++++++++++++++++++++++++---------------------
>  emacs/notmuch.el      |   6 ++-
>  2 files changed, 89 insertions(+), 61 deletions(-)
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show'.
  2016-02-11  8:33 ` [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show' David Edmondson
  2016-02-12 17:14   ` Tomi Ollila
@ 2016-02-14 21:29   ` Mark Walters
  2016-02-20 13:23   ` David Bremner
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Walters @ 2016-02-14 21:29 UTC (permalink / raw)
  To: David Edmondson, notmuch


Just to confirm that this LGTM +1.

Best wishes

Mark

On Thu, 11 Feb 2016, David Edmondson <dme@dme.org> wrote:
> If the basic query passed to `notmuch-show' generates no results, ring
> the bell and inform the user that no messages matched the query rather
> than displaying an empty buffer and showing an obscure error.
>
> Similarly when refreshing a `notmuch-show' buffer and no messages match.
> ---
>  emacs/notmuch-show.el | 144 +++++++++++++++++++++++++++++---------------------
>  emacs/notmuch.el      |   6 ++-
>  2 files changed, 89 insertions(+), 61 deletions(-)
>
> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
> index 3345878..4629c64 100644
> --- a/emacs/notmuch-show.el
> +++ b/emacs/notmuch-show.el
> @@ -153,27 +153,21 @@ indentation."
>  
>  (defvar notmuch-show-thread-id nil)
>  (make-variable-buffer-local 'notmuch-show-thread-id)
> -(put 'notmuch-show-thread-id 'permanent-local t)
>  
>  (defvar notmuch-show-parent-buffer nil)
>  (make-variable-buffer-local 'notmuch-show-parent-buffer)
> -(put 'notmuch-show-parent-buffer 'permanent-local t)
>  
>  (defvar notmuch-show-query-context nil)
>  (make-variable-buffer-local 'notmuch-show-query-context)
> -(put 'notmuch-show-query-context 'permanent-local t)
>  
>  (defvar notmuch-show-process-crypto nil)
>  (make-variable-buffer-local 'notmuch-show-process-crypto)
> -(put 'notmuch-show-process-crypto 'permanent-local t)
>  
>  (defvar notmuch-show-elide-non-matching-messages nil)
>  (make-variable-buffer-local 'notmuch-show-elide-non-matching-messages)
> -(put 'notmuch-show-elide-non-matching-messages 'permanent-local t)
>  
>  (defvar notmuch-show-indent-content t)
>  (make-variable-buffer-local 'notmuch-show-indent-content)
> -(put 'notmuch-show-indent-content 'permanent-local t)
>  
>  (defvar notmuch-show-attachment-debug nil
>    "If t log stdout and stderr from attachment handlers
> @@ -1197,71 +1191,101 @@ non-nil.
>  The optional BUFFER-NAME provides the name of the buffer in
>  which the message thread is shown. If it is nil (which occurs
>  when the command is called interactively) the argument to the
> -function is used."
> +function is used.
> +
> +Returns the buffer containing the messages, or NIL if no messages
> +matched."
>    (interactive "sNotmuch show: \nP")
>    (let ((buffer-name (generate-new-buffer-name
>  		      (or buffer-name
>  			  (concat "*notmuch-" thread-id "*")))))
>      (switch-to-buffer (get-buffer-create buffer-name))
> -    ;; Set the default value for `notmuch-show-process-crypto' in this
> -    ;; buffer.
> -    (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
> -    ;; Set the default value for
> -    ;; `notmuch-show-elide-non-matching-messages' in this buffer. If
> -    ;; elide-toggle is set, invert the default.
> -    (setq notmuch-show-elide-non-matching-messages notmuch-show-only-matching-messages)
> -    (if elide-toggle
> -	(setq notmuch-show-elide-non-matching-messages (not notmuch-show-elide-non-matching-messages)))
> +    ;; No need to track undo information for this buffer.
> +    (setq buffer-undo-list t)
> +
> +    (notmuch-show-mode)
>  
> +    ;; Set various buffer local variables to their appropriate initial
> +    ;; state. Do this after enabling `notmuch-show-mode' so that they
> +    ;; aren't wiped out.
>      (setq notmuch-show-thread-id thread-id
>  	  notmuch-show-parent-buffer parent-buffer
> -	  notmuch-show-query-context query-context)
> -    (notmuch-show-build-buffer)
> -    (notmuch-show-goto-first-wanted-message)
> -    (current-buffer)))
> +	  notmuch-show-query-context query-context
>  
> -(defun notmuch-show-build-buffer ()
> -  (let ((inhibit-read-only t))
> +	  notmuch-show-process-crypto notmuch-crypto-process-mime
> +	  ;; If `elide-toggle', invert the default value.
> +	  notmuch-show-elide-non-matching-messages
> +	  (if elide-toggle
> +	      (not notmuch-show-only-matching-messages)
> +	    notmuch-show-only-matching-messages))
>  
> -    (notmuch-show-mode)
>      (add-hook 'post-command-hook #'notmuch-show-command-hook nil t)
> -
> -    ;; Don't track undo information for this buffer
> -    (set 'buffer-undo-list t)
> +    (jit-lock-register #'notmuch-show-buttonise-links)
>  
>      (notmuch-tag-clear-cache)
> -    (erase-buffer)
> -    (goto-char (point-min))
> -    (save-excursion
> -      (let* ((basic-args (list notmuch-show-thread-id))
> -	     (args (if notmuch-show-query-context
> -		       (append (list "\'") basic-args
> -			       (list "and (" notmuch-show-query-context ")\'"))
> -		     (append (list "\'") basic-args (list "\'"))))
> -	     (cli-args (cons "--exclude=false"
> -			     (when notmuch-show-elide-non-matching-messages
> -			       (list "--entire-thread=false")))))
> -
> -	(notmuch-show-insert-forest (notmuch-query-get-threads (append cli-args args)))
> -	;; If the query context reduced the results to nothing, run
> -	;; the basic query.
> -	(when (and (eq (buffer-size) 0)
> -		   notmuch-show-query-context)
> -	  (notmuch-show-insert-forest
> -	   (notmuch-query-get-threads (append cli-args basic-args)))))
> -
> -      (jit-lock-register #'notmuch-show-buttonise-links)
> -
> -      (notmuch-show-mapc (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
> +
> +    (let ((inhibit-read-only t))
> +      (if (notmuch-show--build-buffer)
> +	  ;; Messages were inserted into the buffer.
> +	  (current-buffer)
> +
> +	;; No messages were inserted - presumably none matched the
> +	;; query.
> +	(kill-buffer (current-buffer))
> +	(ding)
> +	(message "No messages matched the query!")
> +	nil))))
> +
> +(defun notmuch-show--build-buffer (&optional state)
> +  "Display messages matching the current buffer context.
> +
> +Apply the previously saved STATE if supplied, otherwise show the
> +first relevant message.
> +
> +If no messages match the query return NIL."
> +  (let* ((basic-args (list notmuch-show-thread-id))
> +	 (args (if notmuch-show-query-context
> +		   (append (list "\'") basic-args
> +			   (list "and (" notmuch-show-query-context ")\'"))
> +		 (append (list "\'") basic-args (list "\'"))))
> +	 (cli-args (cons "--exclude=false"
> +			 (when notmuch-show-elide-non-matching-messages
> +			   (list "--entire-thread=false"))))
> +
> +	 (forest (or (notmuch-query-get-threads (append cli-args args))
> +		     ;; If a query context reduced the number of
> +		     ;; results to zero, try again without it.
> +		     (and notmuch-show-query-context
> +			  (notmuch-query-get-threads (append cli-args basic-args)))))
> +
> +	 ;; Must be reset every time we are going to start inserting
> +	 ;; messages into the buffer.
> +	 (notmuch-show-previous-subject ""))
> +
> +    (when forest
> +      (notmuch-show-insert-forest forest)
> +
> +      ;; Store the original tags for each message so that we can
> +      ;; display changes.
> +      (notmuch-show-mapc
> +       (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
>  
>        ;; Set the header line to the subject of the first message.
>        (setq header-line-format
>  	    (replace-regexp-in-string "%" "%%"
> -			    (notmuch-sanitize
> -			     (notmuch-show-strip-re
> -			      (notmuch-show-get-subject)))))
> +				      (notmuch-sanitize
> +				       (notmuch-show-strip-re
> +					(notmuch-show-get-subject)))))
>  
> -      (run-hooks 'notmuch-show-hook))))
> +      (run-hooks 'notmuch-show-hook)
> +
> +      (if state
> +	  (notmuch-show-apply-state state)
> +	;; With no state to apply, just go to the first message.
> +	(notmuch-show-goto-first-wanted-message)))
> +
> +    ;; Report back to the caller whether any messages matched.
> +    forest))
>  
>  (defun notmuch-show-capture-state ()
>    "Capture the state of the current buffer.
> @@ -1320,17 +1344,17 @@ reset based on the original query."
>    (let ((inhibit-read-only t)
>  	(state (unless reset-state
>  		 (notmuch-show-capture-state))))
> -    ;; erase-buffer does not seem to remove overlays, which can lead
> +    ;; `erase-buffer' does not seem to remove overlays, which can lead
>      ;; to weird effects such as remaining images, so remove them
>      ;; manually.
>      (remove-overlays)
>      (erase-buffer)
> -    (notmuch-show-build-buffer)
> -    (if state
> -	(notmuch-show-apply-state state)
> -      ;; We're resetting state, so navigate to the first open message
> -      ;; and mark it read, just like opening a new show buffer.
> -      (notmuch-show-goto-first-wanted-message))))
> +
> +    (unless (notmuch-show--build-buffer state)
> +      ;; No messages were inserted.
> +      (kill-buffer (current-buffer))
> +      (ding)
> +      (message "Refreshing the buffer resulted in no messages!"))))
>  
>  (defvar notmuch-show-stash-map
>    (let ((map (make-sparse-keymap)))
> diff --git a/emacs/notmuch.el b/emacs/notmuch.el
> index 463b926..3100b97 100644
> --- a/emacs/notmuch.el
> +++ b/emacs/notmuch.el
> @@ -458,7 +458,11 @@ no messages in the region then return nil."
>    (notmuch-search-properties-in-region :subject beg end))
>  
>  (defun notmuch-search-show-thread (&optional elide-toggle)
> -  "Display the currently selected thread."
> +  "Display the currently selected thread.
> +
> +With a prefix argument, invert the default value of
> +`notmuch-show-only-matching-messages' when displaying the
> +thread."
>    (interactive "P")
>    (let ((thread-id (notmuch-search-find-thread-id))
>  	(subject (notmuch-search-find-subject)))
> -- 
> 2.1.4
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show'.
  2016-02-11  8:33 ` [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show' David Edmondson
  2016-02-12 17:14   ` Tomi Ollila
  2016-02-14 21:29   ` Mark Walters
@ 2016-02-20 13:23   ` David Bremner
  2 siblings, 0 replies; 5+ messages in thread
From: David Bremner @ 2016-02-20 13:23 UTC (permalink / raw)
  To: David Edmondson, notmuch

David Edmondson <dme@dme.org> writes:

> If the basic query passed to `notmuch-show' generates no results, ring
> the bell and inform the user that no messages matched the query rather
> than displaying an empty buffer and showing an obscure error.

pushed.

d

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-02-20 13:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-11  8:33 [PATCH v3] (notmuch-show "id:doesnotexist") should not throw an error David Edmondson
2016-02-11  8:33 ` [PATCH v3] emacs: Report a lack of matches when calling `notmuch-show' David Edmondson
2016-02-12 17:14   ` Tomi Ollila
2016-02-14 21:29   ` Mark Walters
2016-02-20 13:23   ` David Bremner

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).