Mercurial > emacs
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)