changeset 2707:4661157d5c60

(kbd-macro-query): Use query-replace-map to define answers.
author Richard M. Stallman <rms@gnu.org>
date Sun, 09 May 1993 17:58:55 +0000
parents c52476200bec
children a9d400ee1c0e
files lisp/macros.el
diffstat 1 files changed, 33 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/macros.el	Sun May 09 14:29:33 1993 +0000
+++ b/lisp/macros.el	Sun May 09 17:58:55 1993 +0000
@@ -124,25 +124,47 @@
 	(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)