summaryrefslogtreecommitdiff
path: root/lisp/macros.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1993-05-09 17:58:55 +0000
committerRichard M. Stallman <rms@gnu.org>1993-05-09 17:58:55 +0000
commit687b9c1e57c89b64df8ddc4f10157bb1fb8a7233 (patch)
tree11297955a766f8f0e27966f93d9ac38322aa92b2 /lisp/macros.el
parente77e38f9e64d17cb301d027550f1f8083d656d62 (diff)
downloademacs-687b9c1e57c89b64df8ddc4f10157bb1fb8a7233.tar.gz
(kbd-macro-query): Use query-replace-map to define answers.
Diffstat (limited to 'lisp/macros.el')
-rw-r--r--lisp/macros.el44
1 files changed, 33 insertions, 11 deletions
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?\\<query-replace-map>\
+ (\\[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: \\<query-replace-map>
+\\[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)