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)
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))))
(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.