diff lisp/replace.el @ 95604:664723b81c00

(replace-search-function, replace-re-search-function): New vars. (perform-replace): Use them.
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 06 Jun 2008 20:32:11 +0000
parents ee5932bf781d
children b5e89d359b84
line wrap: on
line diff
--- a/lisp/replace.el	Fri Jun 06 20:31:10 2008 +0000
+++ b/lisp/replace.el	Fri Jun 06 20:32:11 2008 +0000
@@ -1486,6 +1486,17 @@
   (replace-match newtext fixedcase literal)
   noedit)
 
+(defvar replace-search-function 'search-forward
+  "Function to use when searching for strings to replace.
+It is used by `query-replace' and `replace-string', and is called
+with three arguments, as if it were `search-forward'.")
+
+(defvar replace-re-search-function 're-search-forward
+  "Function to use when searching for regexps to replace.
+It is used by `query-replace-regexp', `replace-regexp',
+`query-replace-regexp-eval', and `map-query-replace-regexp'.  It
+is called with three arguments, as if it were `search-forward'.")
+
 (defun perform-replace (from-string replacements
 		        query-flag regexp-flag delimited-flag
 			&optional repeat-count map start end)
@@ -1511,7 +1522,10 @@
 	    case-fold-search))
          (nocasify (not (and case-replace case-fold-search)))
          (literal (or (not regexp-flag) (eq regexp-flag 'literal)))
-         (search-function (if regexp-flag 're-search-forward 'search-forward))
+         (search-function
+	  (if regexp-flag
+	      replace-re-search-function
+	    replace-search-function))
          (search-string from-string)
          (real-match-data nil)       ; The match data for the current match.
          (next-replacement nil)