[PATCH] test: make (kill-emacs) from emacsclient work with emacs 23.(1|2)
amdragon at MIT.EDU
Fri Jan 13 11:18:15 PST 2012
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
> 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