From 687b9c1e57c89b64df8ddc4f10157bb1fb8a7233 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 9 May 1993 17:58:55 +0000 Subject: (kbd-macro-query): Use query-replace-map to define answers. --- lisp/macros.el | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) (limited to 'lisp/macros.el') diff --git a/lisp/macros.el b/lisp/macros.el index 41c021897cd..a6b50c4732a 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -124,25 +124,47 @@ C-l -- redisplay screen and ask again." (recursive-edit)) (if (not executing-macro) nil - (let ((loop t)) + (let ((loop t) + (msg (substitute-command-keys + "Proceed with macro?\\\ + (\\[act], \\[skip], \\[exit], \\[recenter], \\[edit]"))) (while loop - (let ((char (let ((executing-macro nil) - (defining-kbd-macro nil)) - (message "Proceed with macro? (Space, DEL, C-d, C-r or C-l) ") - (read-char)))) - (cond ((= char ? ) + (let ((key (let ((executing-macro nil) + (defining-kbd-macro nil)) + (message msg) + (read-event))) + def) + (setq key (vector key)) + (setq def (lookup-key query-replace-map key)) + (cond ((eq def 'act) (setq loop nil)) - ((= char ?\177) + ((eq def 'skip) (setq loop nil) (setq executing-macro "")) - ((= char ?\C-d) + ((eq def 'exit) (setq loop nil) (setq executing-macro t)) - ((= char ?\C-l) + ((eq def 'recenter) (recenter nil)) - ((= char ?\C-r) + ((eq def 'edit) (let (executing-macro defining-kbd-macro) - (recursive-edit)))))))))) + (recursive-edit))) + ((eq def 'quit) + (setq quit-flag t)) + (t + (or (eq def 'help) + (ding)) + (with-output-to-temp-buffer "*Help*" + (princ + (substitute-command-keys + "Specify how to procede with keyboard macro execution. +Possibilities: \\ +\\[act] Finish this iteration normally and continue with the next. +\\[skip] Skip the rest of this iteration, and start the next. +\\[exit] Stop the macro entirely right now. +\\[recenter] Redisplay the screen, then ask again. +\\[edit] Enter recursive edit; ask again when you exit from that.")))) + ))))))) ;;;###autoload (defun apply-macro-to-region-lines (top bottom &optional macro) -- cgit v1.2.1