Mercurial > emacs
changeset 31710:6c1273035214
(map-y-or-n-p): Check use-dialog-box. Don't lose
with null `help'. Use modern backquote syntax.
author | Dave Love <fx@gnu.org> |
---|---|
date | Tue, 19 Sep 2000 11:57:07 +0000 |
parents | 5913c05f83ee |
children | 7b0ae5c81072 |
files | lisp/map-ynp.el |
diffstat | 1 files changed, 32 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/map-ynp.el Tue Sep 19 11:03:14 2000 +0000 +++ b/lisp/map-ynp.el Tue Sep 19 11:57:07 2000 +0000 @@ -1,6 +1,6 @@ ;;; map-ynp.el --- General-purpose boolean question-asker. -;; Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 2000 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Maintainer: FSF @@ -96,20 +96,21 @@ list (cdr list)) t) nil)))))) - (if (listp last-nonmenu-event) + (if (and (listp last-nonmenu-event) + use-dialog-box) ;; Make a list describing a dialog box. - (let ((object (capitalize (nth 0 help))) - (objects (capitalize (nth 1 help))) - (action (capitalize (nth 2 help)))) - (setq map (` (("Yes" . act) ("No" . skip) ("Quit" . exit) - ((, (if help (concat action " " object " And Quit") - "Do it and Quit")) . act-and-exit) - ((, (if help (concat action " All " objects) - "Do All")) . automatic) - (,@ (mapcar (lambda (elt) - (cons (capitalize (nth 2 elt)) - (vector (nth 1 elt)))) - action-alist)))) + (let ((object (if help (capitalize (nth 0 help)))) + (objects (if help (capitalize (nth 1 help)))) + (action (if help (capitalize (nth 2 help))))) + (setq map `(("Yes" . act) ("No" . skip) ("Quit" . exit) + (,(if help (concat action " " object " And Quit") + "Do it and Quit") . act-and-exit) + (,(if help (concat action " All " objects) + "Do All") . automatic) + ,@(mapcar (lambda (elt) + (cons (capitalize (nth 2 elt)) + (vector (nth 1 elt)))) + action-alist)) use-menus t mouse-event last-nonmenu-event)) (setq user-keys (if action-alist @@ -130,8 +131,8 @@ (unwind-protect (progn (if (stringp prompter) - (setq prompter (` (lambda (object) - (format (, prompter) object))))) + (setq prompter `(lambda (object) + (format ,prompter object)))) (while (funcall next) (setq prompt (funcall prompter elt)) (cond ((stringp prompt) @@ -176,9 +177,9 @@ next (function (lambda () nil)))) ((or (eq def 'quit) (eq def 'exit-prefix)) (setq quit-flag t) - (setq next (` (lambda () - (setq next '(, next)) - '(, elt))))) + (setq next `(lambda () + (setq next ',next) + ',elt))) ((eq def 'automatic) ;; Act on this and all following objects. (if (funcall prompter elt) @@ -219,34 +220,34 @@ (set-buffer standard-output) (help-mode))) - (setq next (` (lambda () - (setq next '(, next)) - '(, elt))))) + (setq next (lambda () + (setq next ',next) + ',elt))) ((vectorp def) ;; A user-defined key. (if (funcall (aref def 0) elt) ;Call its function. ;; The function has eaten this object. (setq actions (1+ actions)) ;; Regurgitated; try again. - (setq next (` (lambda () - (setq next '(, next)) - '(, elt)))))) + (setq next (lambda () + (setq next ',next) + ',elt)))) ((and (consp char) (eq (car char) 'switch-frame)) ;; switch-frame event. Put it off until we're done. (setq delayed-switch-frame char) - (setq next (` (lambda () - (setq next '(, next)) - '(, elt))))) + (setq next (lambda () + (setq next ',next) + ',elt))) (t ;; Random char. (message "Type %s for help." (key-description (vector help-char))) (beep) (sit-for 1) - (setq next (` (lambda () - (setq next '(, next)) - '(, elt))))))) + (setq next (lambda () + (setq next ',next) + ',elt))))) (prompt (funcall actor elt) (setq actions (1+ actions))))))