changeset 86018:2c176c668b7a

(query-replace-show-replacement): New defcustom. (perform-replace): Use `match-substitute-replacement' if `query-replace-show-replacement' is non-nil.
author Juri Linkov <juri@jurta.org>
date Sat, 10 Nov 2007 21:48:46 +0000
parents 484f09d924cf
children a673ba5311a4
files lisp/replace.el
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/replace.el	Sat Nov 10 21:48:16 2007 +0000
+++ b/lisp/replace.el	Sat Nov 10 21:48:46 2007 +0000
@@ -69,6 +69,12 @@
   :group 'matching
   :version "22.1")
 
+(defcustom query-replace-show-replacement t
+  "*Non-nil means to show what actual replacement text will be."
+  :type 'boolean
+  :group 'matching
+  :version "23.1")
+
 (defcustom query-replace-highlight t
   "*Non-nil means to highlight matches during query replacement."
   :type 'boolean
@@ -1570,10 +1576,17 @@
 		   (or delimited-flag regexp-flag) case-fold-search)
 		  ;; Bind message-log-max so we don't fill up the message log
 		  ;; with a bunch of identical messages.
-		  (let ((message-log-max nil))
+		  (let ((message-log-max nil)
+			(replacement-presentation
+			 (if query-replace-show-replacement
+			     (save-match-data
+			       (set-match-data real-match-data)
+			       (match-substitute-replacement next-replacement
+							     nocasify literal))
+			   next-replacement)))
 		    (message message
                              (query-replace-descr from-string)
-                             (query-replace-descr next-replacement)))
+                             (query-replace-descr replacement-presentation)))
 		  (setq key (read-event))
 		  ;; Necessary in case something happens during read-event
 		  ;; that clobbers the match data.