changeset 56351:d073da76f0a5

(query-replace-read-from, query-replace-read-to): New funs extracted from query-replace-read-args. (query-replace-read-args): Use them.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 05 Jul 2004 23:12:28 +0000
parents cae4ae1c68a9
children f0e5e08dd63e
files lisp/replace.el
diffstat 1 files changed, 30 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/replace.el	Mon Jul 05 22:50:46 2004 +0000
+++ b/lisp/replace.el	Mon Jul 05 23:12:28 2004 +0000
@@ -64,21 +64,20 @@
   :group 'matching
   :version "21.4")
 
-(defun query-replace-read-args (string regexp-flag &optional noerror)
-  (unless noerror
-    (barf-if-buffer-read-only))
-  (let (from to)
-    (if query-replace-interactive
-        (setq from (car (if regexp-flag regexp-search-ring search-ring)))
-      ;; The save-excursion here is in case the user marks and copies
-      ;; a region in order to specify the minibuffer input.
-      ;; That should not clobber the region for the query-replace itself.
-      (save-excursion
-        (setq from (read-from-minibuffer
-                    (format "%s: " string)
-                    nil nil nil
-                    query-replace-from-history-variable
-                    nil t)))
+(defun query-replace-read-from (string regexp-flag)
+  "Query and return the `from' argument of a query-replace operation."
+  (if query-replace-interactive
+      (car (if regexp-flag regexp-search-ring search-ring))
+    (let* ((from
+	    ;; The save-excursion here is in case the user marks and copies
+	    ;; a region in order to specify the minibuffer input.
+	    ;; That should not clobber the region for the query-replace itself.
+	    (save-excursion
+	      (read-from-minibuffer
+	       (format "%s: " string)
+	       nil nil nil
+	       query-replace-from-history-variable
+	       nil t))))
       ;; Warn if user types \n or \t, but don't reject the input.
       (and regexp-flag
 	   (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
@@ -88,13 +87,16 @@
 	       (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead"))
 	      ((string= match "\\t")
 	       (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB")))
-	     (sit-for 2))))
+	     (sit-for 2)))
+      from)))
 
-    (save-excursion
-      (setq to (read-from-minibuffer
-                (format "%s %s with: " string from)
-                nil nil nil
-                query-replace-to-history-variable from t)))
+(defun query-replace-read-to (from string regexp-flag)
+  "Query and return the `from' argument of a query-replace operation."
+  (let ((to (save-excursion
+	      (read-from-minibuffer
+	       (format "%s %s with: " string from)
+	       nil nil nil
+	       query-replace-to-history-variable from t))))
     (when (and regexp-flag
 	       (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
       (let (pos list char)
@@ -129,6 +131,13 @@
 		     (if (> (length to) 1)
 			 (cons 'concat to)
 		       (car to)))))
+    to))
+
+(defun query-replace-read-args (string regexp-flag &optional noerror)
+  (unless noerror
+    (barf-if-buffer-read-only))
+  (let* ((from (query-replace-read-from string regexp-flag))
+	 (to (query-replace-read-to from string regexp-flag)))
     (list from to current-prefix-arg)))
 
 (defun query-replace (from-string to-string &optional delimited start end)