From 7abe68aa191f9874d41e7d41274ee4fb9a793601 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sat, 10 Nov 2007 21:49:19 +0000 Subject: [PATCH] (query-replace-show-replacement): New defcustom. (perform-replace): Use `match-substitute-replacement' if `query-replace-show-replacement' is non-nil. --- lisp/ChangeLog | 10 ++++++++++ lisp/replace.el | 17 +++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7dfea4936d7..ec6c084dd77 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2007-11-10 Paul Pogonyshev + + * replace.el (query-replace-show-replacement): New defcustom. + (perform-replace): Use `match-substitute-replacement' if + `query-replace-show-replacement' is non-nil. + +2007-11-10 David Kastrup + + * subr.el (match-substitute-replacement): New function. + 2007-11-10 Carsten Dominik * files.el (auto-mode-alist): Select org-mode for files with the diff --git a/lisp/replace.el b/lisp/replace.el index 5fe8ad43d22..7876f9bb47c 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -69,6 +69,12 @@ strings or patterns." :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 @@ make, or the user didn't cancel the call." (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. -- 2.39.2