summaryrefslogtreecommitdiff
path: root/lisp/map-ynp.el
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1991-07-09 16:28:08 +0000
committerRoland McGrath <roland@gnu.org>1991-07-09 16:28:08 +0000
commit0af46a8b5413c346fa87d076109309e97c68836f (patch)
treedbd88388e1f050443bcd8e76c51867a842e389ee /lisp/map-ynp.el
parentc888bcc33fbfe1043bb40fc9f532ea3fd62fe7c8 (diff)
downloademacs-0af46a8b5413c346fa87d076109309e97c68836f.tar.gz
*** empty log message ***
Diffstat (limited to 'lisp/map-ynp.el')
-rw-r--r--lisp/map-ynp.el25
1 files changed, 14 insertions, 11 deletions
diff --git a/lisp/map-ynp.el b/lisp/map-ynp.el
index f55d6e62713..270e137c521 100644
--- a/lisp/map-ynp.el
+++ b/lisp/map-ynp.el
@@ -115,31 +115,34 @@ Returns the number of actions taken."
(setq actions (1+ actions)
next (function (lambda () nil))))
((= ?! char)
- ;; Act on all following objects.
+ ;; Act on this and all following objects.
+ (if (eval (funcall prompter elt))
+ (progn
+ (funcall actor elt)
+ (setq actions (1+ actions))))
(while (setq elt (funcall next))
- (if (funcall prompter elt)
+ (if (eval (funcall prompter elt))
(progn
(funcall actor elt)
(setq actions (1+ actions))))))
((= ?? char)
(setq unread-command-char help-char)
- (setq next (` (function (lambda ()
- (setq next (, next))
- t)))))
+ (setq next (` (lambda ()
+ (setq next '(, next))
+ '(, elt)))))
(t
;; Random char.
(message "Type %s for help."
(key-description (char-to-string help-char)))
(beep)
(sit-for 1)
- (setq next (` (function (lambda ()
- (setq next (, next))
- t)))))))
+ (setq next (` (lambda ()
+ (setq next '(, next))
+ '(, elt)))))))
(if (eval prompt)
(progn
- (funcall actor (car list))
- (setq actions (1+ actions)))))
- (setq list (cdr list)))
+ (funcall actor elt)
+ (setq actions (1+ actions))))))
;; Clear the last prompt from the minibuffer.
(message "")
;; Return the number of actions that were taken.