[PATCH v2 0/7] Improve Emacs CLI error handling

2012-12-16 Thread Tomi Ollila
On Sat, Dec 15 2012, Austin Clements  wrote:

> This obsoletes id:1355548513-10085-1-git-send-email-amdragon at mit.edu
> and fixes the things Mark and Tomi commented on.  The interdiff is
> below.

Ok, new error messages appear at the end. Good.

+1

Tomi

>
> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
> index cf61635..8f84087 100644
> --- a/emacs/notmuch-lib.el
> +++ b/emacs/notmuch-lib.el
> @@ -326,10 +326,12 @@ the user dismisses it."
>  (with-current-buffer buf
>(view-mode-enter nil #'kill-buffer)
>(let ((inhibit-read-only t))
> + (goto-char (point-max))
> + (unless (bobp)
> +   (insert "\n"))
>   (insert msg)
>   (unless (bolp)
> -   (insert "\n"))
> - (goto-char (point-min
> +   (insert "\n"
>  (pop-to-buffer buf)))
>  


[PATCH v2 0/7] Improve Emacs CLI error handling

2012-12-15 Thread Austin Clements
This obsoletes id:1355548513-10085-1-git-send-email-amdragon at mit.edu
and fixes the things Mark and Tomi commented on.  The interdiff is
below.

diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index cf61635..8f84087 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -326,10 +326,12 @@ the user dismisses it."
 (with-current-buffer buf
   (view-mode-enter nil #'kill-buffer)
   (let ((inhibit-read-only t))
+   (goto-char (point-max))
+   (unless (bobp)
+ (insert "\n"))
(insert msg)
(unless (bolp)
- (insert "\n"))
-   (goto-char (point-min
+ (insert "\n"
 (pop-to-buffer buf)))

 (defun notmuch-check-async-exit-status (proc msg)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index c20de13..b0fd387 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -536,8 +536,9 @@ If BARE is set then do not prefix with \"thread:\""
 (defun notmuch-call-notmuch-process ( args)
   "Synchronously invoke \"notmuch\" with the given list of arguments.

-Output from the process will be presented to the user as an error
-and will also appear in a buffer named \"*Notmuch errors*\"."
+If notmuch exits with a non-zero status, output from the process
+will appear in a buffer named \"*Notmuch errors*\" and an error
+will be signaled."
   (with-temp-buffer
 (let ((status (apply #'call-process notmuch-command nil t nil args)))
   (notmuch-check-exit-status status (cons notmuch-command args)
@@ -649,7 +650,7 @@ of the result."
  (insert "Incomplete search results (search process was 
killed).\n"))
  (when (eq status 'exit)
(insert "End of search results.\n")
-   (condition-case err
+   (condition-case nil
(notmuch-check-async-exit-status proc msg)
  ;; Suppress the error signal since strange
  ;; things happen if a sentinel signals.
diff --git a/test/emacs b/test/emacs
index 88b062c..5067d67 100755
--- a/test/emacs
+++ b/test/emacs
@@ -873,7 +873,7 @@ This is output
 Error: Unexpected output from notmuch search:
 This is an error
 End of search results.
-Error invoking notmuch.  /tmp/nmtest/tmp.emacs/notmuch_fail search 
--format=json --sort=newest-first tag:inbox exited with status 1."
+Error invoking notmuch.  $PWD/notmuch_fail search --format=json 
--sort=newest-first tag:inbox exited with status 1."


 test_done
diff --git a/test/emacs-show b/test/emacs-show
index c67c6a4..40fab61 100755
--- a/test/emacs-show
+++ b/test/emacs-show
@@ -178,7 +178,7 @@ test_emacs "(let ((notmuch-command \"$PWD/notmuch_fail\"))
   (with-current-buffer \"*Notmuch errors*\"
  (test-output \"ERROR\")))"
 test_expect_equal "$(cat OUTPUT ERROR)" "\
-Error invoking notmuch.  /tmp/nmtest/tmp.emacs-show/notmuch_fail show 
--format=json --exclude=false ' * ' exited with status 1.
+Error invoking notmuch.  $PWD/notmuch_fail show --format=json --exclude=false 
' * ' exited with status 1.
 Error:
 This is an error
 Output:




[PATCH v2 0/7] Improve Emacs CLI error handling

2012-12-15 Thread Austin Clements
This obsoletes id:1355548513-10085-1-git-send-email-amdra...@mit.edu
and fixes the things Mark and Tomi commented on.  The interdiff is
below.

diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index cf61635..8f84087 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -326,10 +326,12 @@ the user dismisses it.
 (with-current-buffer buf
   (view-mode-enter nil #'kill-buffer)
   (let ((inhibit-read-only t))
+   (goto-char (point-max))
+   (unless (bobp)
+ (insert \n))
(insert msg)
(unless (bolp)
- (insert \n))
-   (goto-char (point-min
+ (insert \n
 (pop-to-buffer buf)))
 
 (defun notmuch-check-async-exit-status (proc msg)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index c20de13..b0fd387 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -536,8 +536,9 @@ If BARE is set then do not prefix with \thread:\
 (defun notmuch-call-notmuch-process (rest args)
   Synchronously invoke \notmuch\ with the given list of arguments.
 
-Output from the process will be presented to the user as an error
-and will also appear in a buffer named \*Notmuch errors*\.
+If notmuch exits with a non-zero status, output from the process
+will appear in a buffer named \*Notmuch errors*\ and an error
+will be signaled.
   (with-temp-buffer
 (let ((status (apply #'call-process notmuch-command nil t nil args)))
   (notmuch-check-exit-status status (cons notmuch-command args)
@@ -649,7 +650,7 @@ of the result.
  (insert Incomplete search results (search process was 
killed).\n))
  (when (eq status 'exit)
(insert End of search results.\n)
-   (condition-case err
+   (condition-case nil
(notmuch-check-async-exit-status proc msg)
  ;; Suppress the error signal since strange
  ;; things happen if a sentinel signals.
diff --git a/test/emacs b/test/emacs
index 88b062c..5067d67 100755
--- a/test/emacs
+++ b/test/emacs
@@ -873,7 +873,7 @@ This is output
 Error: Unexpected output from notmuch search:
 This is an error
 End of search results.
-Error invoking notmuch.  /tmp/nmtest/tmp.emacs/notmuch_fail search 
--format=json --sort=newest-first tag:inbox exited with status 1.
+Error invoking notmuch.  $PWD/notmuch_fail search --format=json 
--sort=newest-first tag:inbox exited with status 1.
 
 
 test_done
diff --git a/test/emacs-show b/test/emacs-show
index c67c6a4..40fab61 100755
--- a/test/emacs-show
+++ b/test/emacs-show
@@ -178,7 +178,7 @@ test_emacs (let ((notmuch-command \$PWD/notmuch_fail\))
   (with-current-buffer \*Notmuch errors*\
  (test-output \ERROR\)))
 test_expect_equal $(cat OUTPUT ERROR) \
-Error invoking notmuch.  /tmp/nmtest/tmp.emacs-show/notmuch_fail show 
--format=json --exclude=false ' * ' exited with status 1.
+Error invoking notmuch.  $PWD/notmuch_fail show --format=json --exclude=false 
' * ' exited with status 1.
 Error:
 This is an error
 Output:


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


Re: [PATCH v2 0/7] Improve Emacs CLI error handling

2012-12-15 Thread Mark Walters

This series looks good to me. Just one possible thought: would it be
worth time-stamping the errors (mostly in case the user does not quit
the error buffer). But +1 anyway

Best wishes

Mark


On Sat, 15 Dec 2012, Austin Clements amdra...@mit.edu wrote:
 This obsoletes id:1355548513-10085-1-git-send-email-amdra...@mit.edu
 and fixes the things Mark and Tomi commented on.  The interdiff is
 below.

 diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
 index cf61635..8f84087 100644
 --- a/emacs/notmuch-lib.el
 +++ b/emacs/notmuch-lib.el
 @@ -326,10 +326,12 @@ the user dismisses it.
  (with-current-buffer buf
(view-mode-enter nil #'kill-buffer)
(let ((inhibit-read-only t))
 + (goto-char (point-max))
 + (unless (bobp)
 +   (insert \n))
   (insert msg)
   (unless (bolp)
 -   (insert \n))
 - (goto-char (point-min
 +   (insert \n
  (pop-to-buffer buf)))
  
  (defun notmuch-check-async-exit-status (proc msg)
 diff --git a/emacs/notmuch.el b/emacs/notmuch.el
 index c20de13..b0fd387 100644
 --- a/emacs/notmuch.el
 +++ b/emacs/notmuch.el
 @@ -536,8 +536,9 @@ If BARE is set then do not prefix with \thread:\
  (defun notmuch-call-notmuch-process (rest args)
Synchronously invoke \notmuch\ with the given list of arguments.
  
 -Output from the process will be presented to the user as an error
 -and will also appear in a buffer named \*Notmuch errors*\.
 +If notmuch exits with a non-zero status, output from the process
 +will appear in a buffer named \*Notmuch errors*\ and an error
 +will be signaled.
(with-temp-buffer
  (let ((status (apply #'call-process notmuch-command nil t nil args)))
(notmuch-check-exit-status status (cons notmuch-command args)
 @@ -649,7 +650,7 @@ of the result.
 (insert Incomplete search results (search process was 
 killed).\n))
 (when (eq status 'exit)
   (insert End of search results.\n)
 - (condition-case err
 + (condition-case nil
   (notmuch-check-async-exit-status proc msg)
 ;; Suppress the error signal since strange
 ;; things happen if a sentinel signals.
 diff --git a/test/emacs b/test/emacs
 index 88b062c..5067d67 100755
 --- a/test/emacs
 +++ b/test/emacs
 @@ -873,7 +873,7 @@ This is output
  Error: Unexpected output from notmuch search:
  This is an error
  End of search results.
 -Error invoking notmuch.  /tmp/nmtest/tmp.emacs/notmuch_fail search 
 --format=json --sort=newest-first tag:inbox exited with status 1.
 +Error invoking notmuch.  $PWD/notmuch_fail search --format=json 
 --sort=newest-first tag:inbox exited with status 1.
  
  
  test_done
 diff --git a/test/emacs-show b/test/emacs-show
 index c67c6a4..40fab61 100755
 --- a/test/emacs-show
 +++ b/test/emacs-show
 @@ -178,7 +178,7 @@ test_emacs (let ((notmuch-command \$PWD/notmuch_fail\))
  (with-current-buffer \*Notmuch errors*\
 (test-output \ERROR\)))
  test_expect_equal $(cat OUTPUT ERROR) \
 -Error invoking notmuch.  /tmp/nmtest/tmp.emacs-show/notmuch_fail show 
 --format=json --exclude=false ' * ' exited with status 1.
 +Error invoking notmuch.  $PWD/notmuch_fail show --format=json 
 --exclude=false ' * ' exited with status 1.
  Error:
  This is an error
  Output:
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch



Re: [PATCH v2 0/7] Improve Emacs CLI error handling

2012-12-15 Thread Tomi Ollila
On Sat, Dec 15 2012, Austin Clements amdra...@mit.edu wrote:

 This obsoletes id:1355548513-10085-1-git-send-email-amdra...@mit.edu
 and fixes the things Mark and Tomi commented on.  The interdiff is
 below.

Ok, new error messages appear at the end. Good.

+1

Tomi


 diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
 index cf61635..8f84087 100644
 --- a/emacs/notmuch-lib.el
 +++ b/emacs/notmuch-lib.el
 @@ -326,10 +326,12 @@ the user dismisses it.
  (with-current-buffer buf
(view-mode-enter nil #'kill-buffer)
(let ((inhibit-read-only t))
 + (goto-char (point-max))
 + (unless (bobp)
 +   (insert \n))
   (insert msg)
   (unless (bolp)
 -   (insert \n))
 - (goto-char (point-min
 +   (insert \n
  (pop-to-buffer buf)))
  
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch