mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-05 11:45:45 +00:00
* lisp/subr.el (y-or-n-p): Add code for batch mode.
Fixes: debbugs:9818
This commit is contained in:
parent
e1eb5385bb
commit
aa4de34102
@ -1,5 +1,7 @@
|
||||
2011-10-29 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* subr.el (y-or-n-p): Add code for batch mode (Bug#9818).
|
||||
|
||||
* mouse.el (mouse-yank-primary): Push the mark (Bug#9894).
|
||||
|
||||
* textmodes/flyspell.el (flyspell-word): Fix char offset for
|
||||
|
26
lisp/subr.el
26
lisp/subr.el
@ -2262,11 +2262,25 @@ is nil and `use-dialog-box' is non-nil."
|
||||
;; where all the keys were unbound (i.e. it somehow got triggered
|
||||
;; within read-key, apparently). I had to kill it.
|
||||
(let ((answer 'recenter))
|
||||
(if (and (display-popup-menus-p)
|
||||
(listp last-nonmenu-event)
|
||||
use-dialog-box)
|
||||
(setq answer
|
||||
(x-popup-dialog t `(,prompt ("Yes" . act) ("No" . skip))))
|
||||
(cond
|
||||
(noninteractive
|
||||
(setq prompt (concat prompt
|
||||
(if (eq ?\s (aref prompt (1- (length prompt))))
|
||||
"" " ")
|
||||
"(y or n) "))
|
||||
(let ((temp-prompt prompt))
|
||||
(while (not (memq answer '(act skip)))
|
||||
(let ((str (read-string temp-prompt)))
|
||||
(cond ((member str '("y" "Y")) (setq answer 'act))
|
||||
((member str '("n" "N")) (setq answer 'skip))
|
||||
(t (setq temp-prompt (concat "Please answer y or n. "
|
||||
prompt))))))))
|
||||
((and (display-popup-menus-p)
|
||||
(listp last-nonmenu-event)
|
||||
use-dialog-box)
|
||||
(setq answer
|
||||
(x-popup-dialog t `(,prompt ("Yes" . act) ("No" . skip)))))
|
||||
(t
|
||||
(setq prompt (concat prompt
|
||||
(if (eq ?\s (aref prompt (1- (length prompt))))
|
||||
"" " ")
|
||||
@ -2288,7 +2302,7 @@ is nil and `use-dialog-box' is non-nil."
|
||||
((memq answer '(exit-prefix quit)) (signal 'quit nil) t)
|
||||
(t t)))
|
||||
(ding)
|
||||
(discard-input)))
|
||||
(discard-input))))
|
||||
(let ((ret (eq answer 'act)))
|
||||
(unless noninteractive
|
||||
(message "%s %s" prompt (if ret "y" "n")))
|
||||
|
Loading…
Reference in New Issue
Block a user