X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/81eb8fcd8dc8ac7692ec125014f4ec2fe14d5f25..c7c8b31e4f8ed8de385c0b1a06fd597e8c3acef6:/lisp/map-ynp.el diff --git a/lisp/map-ynp.el b/lisp/map-ynp.el index c3cce3abc0..c64b1c78ae 100644 --- a/lisp/map-ynp.el +++ b/lisp/map-ynp.el @@ -80,11 +80,11 @@ Returns the number of actions taken." action-alist ", ") " ") "")) - ;; Make a map that defines all the user keys as `user'. + ;; Make a map that defines each user key as a vector containing + ;; its definition. (map (cons 'keymap - (append (mapcar (function - (lambda (elt) - (cons (car elt) 'user))) + (append (mapcar (lambda (elt) + (cons (car elt) (vector (nth 1 elt)))) action-alist) query-replace-map))) (actions 0) @@ -118,6 +118,11 @@ Returns the number of actions taken." prompt user-keys (key-description (char-to-string help-char))) (setq char (read-event))) + ;; Show the answer to the question. + (message "%s(y, n, !, ., q, %sor %s) %s" + prompt user-keys + (key-description (char-to-string help-char)) + (single-key-description char)) (setq def (lookup-key map (vector char))) (cond ((eq def 'exit) (setq next (function (lambda () nil)))) @@ -175,9 +180,9 @@ the current %s and exit." (setq next (` (lambda () (setq next '(, next)) '(, elt))))) - ((eq def 'user) + ((vectorp def) ;; A user-defined key. - (if (funcall (nth 1 tail) elt) ;Call its function. + (if (funcall (aref def 0) elt) ;Call its function. ;; The function has eaten this object. (setq actions (1+ actions)) ;; Regurgitated; try again.