test: make (kill-emacs) from emacsclient work with emacs 23.(1|2)
authorTomi Ollila <tomi.ollila@iki.fi>
Fri, 13 Jan 2012 08:17:28 +0000 (10:17 +0200)
committerDavid Bremner <bremner@debian.org>
Sun, 22 Jan 2012 13:18:20 +0000 (09:18 -0400)
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.

test/test-lib.el

index 3b817c3730498cecefdb4e7508305b64724df224..59c586813d45f7f71033a6d7d87f01c62de37e79 100644 (file)
 ;; `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))