[PATCH] test: make (kill-emacs) from emacsclient work with emacs 23.(1|2)

Austin Clements amdragon at MIT.EDU
Fri Jan 13 11:18:15 PST 2012


LGTM.

Quoth Tomi Ollila on Jan 13 at 10:17 am:
> emacsclient --eval '(kill-emacs)' makes emacs versions 23.1
> and 23.2 ask user input from running emacs. Redefining
> yes-or-no-p function when kill-emacs is executed for these
> emacs versions in test-lib.el avoids this test problem.
> ---
> Thanks Austin for your comments. Including 'activate' into defadvice
> made it possible to use if (well, without progn...) instead of when
> which makes this also marginally faster (as we're not byte-compiling
> this).
> 
>  test/test-lib.el |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/test/test-lib.el b/test/test-lib.el
> index 3b817c3..59c5868 100644
> --- a/test/test-lib.el
> +++ b/test/test-lib.el
> @@ -26,6 +26,13 @@
>  ;; `read' call.
>  (setq read-file-name-function (lambda (&rest _) (read)))
>  
> +;; Work around a bug in emacs 23.1 and emacs 23.2 which prevents
> +;; noninteractive (kill-emacs) from emacsclient.
> +(if (and (= emacs-major-version 23) (< emacs-minor-version 3))
> +  (defadvice kill-emacs (before disable-yes-or-no-p activate)
> +    "Disable yes-or-no-p before executing kill-emacs"
> +    (defun yes-or-no-p (prompt) t)))
> +
>  (defun notmuch-test-wait ()
>    "Wait for process completion."
>    (while (get-buffer-process (current-buffer))


More information about the notmuch mailing list