# HG changeset patch # User Juri Linkov # Date 1194731326 0 # Node ID 2c176c668b7a6c8befe34e0f279a81092e64fade # Parent 484f09d924cfa106351bdd8aa065d6b5849d6028 (query-replace-show-replacement): New defcustom. (perform-replace): Use `match-substitute-replacement' if `query-replace-show-replacement' is non-nil. diff -r 484f09d924cf -r 2c176c668b7a lisp/replace.el --- 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.