diff options
author | Richard M. Stallman <rms@gnu.org> | 2003-02-24 16:45:47 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2003-02-24 16:45:47 +0000 |
commit | 10784bace46bcbd0cf78d26a87626d063982cb81 (patch) | |
tree | d57d4597c063662b99b40a6f337aff82498536de /lisp/replace.el | |
parent | d25ab73f88b7b1f6a7a95b887b3cfc3fb0acc3ec (diff) | |
download | emacs-10784bace46bcbd0cf78d26a87626d063982cb81.tar.gz |
(query-replace-read-args): Return just 3 values.
(query-replace, query-replace-regexp)
(query-replace-regexp-eval, map-query-replace-regexp)
(replace-string, replace-regexp): Read the start and end args
separately so that the expressions are recorded in command-history.
Diffstat (limited to 'lisp/replace.el')
-rw-r--r-- | lisp/replace.el | 68 |
1 files changed, 51 insertions, 17 deletions
diff --git a/lisp/replace.el b/lisp/replace.el index 14bbb6fb9ad..5fc68fa9408 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -87,9 +87,7 @@ strings or patterns." (setq to (read-from-minibuffer (format "%s %s with: " string from) nil nil nil query-replace-to-history-variable from t)) - (if (and transient-mark-mode mark-active) - (list from to current-prefix-arg (region-beginning) (region-end)) - (list from to current-prefix-arg nil nil)))) + (list from to current-prefix-arg))) (defun query-replace (from-string to-string &optional delimited start end) "Replace some occurrences of FROM-STRING with TO-STRING. @@ -116,7 +114,16 @@ only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. To customize possible responses, change the \"bindings\" in `query-replace-map'." - (interactive (query-replace-read-args "Query replace" nil)) + (interactive (let ((common + (query-replace-read-args "Query replace" nil))) + (list (nth 0 common) (nth 1 common) (nth 2 common) + ;; These are done separately here + ;; so that command-history will record these expressions + ;; rather than the values they had this time. + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) (perform-replace from-string to-string t nil delimited nil nil start end)) (define-key esc-map "%" 'query-replace) @@ -148,7 +155,18 @@ Fourth and fifth arg START and END specify the region to operate on. In TO-STRING, `\\&' stands for whatever matched the whole of REGEXP, and `\\=\\N' (where N is a digit) stands for whatever what matched the Nth `\\(...\\)' in REGEXP." - (interactive (query-replace-read-args "Query replace regexp" t)) + (interactive + (let ((common + (query-replace-read-args "Query replace regexp" t))) + (list (nth 0 common) (nth 1 common) (nth 2 common) + ;; These are done separately here + ;; so that command-history will record these expressions + ;; rather than the values they had this time. + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) + (perform-replace regexp to-string t t delimited nil nil start end)) (define-key esc-map [?\C-%] 'query-replace-regexp) @@ -181,10 +199,7 @@ Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches that are surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on." (interactive - (let (from to start end) - (when (and transient-mark-mode mark-active) - (setq start (region-beginning) - end (region-end))) + (let (from to) (if query-replace-interactive (setq from (car regexp-search-ring)) (setq from (read-from-minibuffer "Query replace regexp: " @@ -197,7 +212,11 @@ Fourth and fifth arg START and END specify the region to operate on." ;; We make TO a list because replace-match-string-symbols requires one, ;; and the user might enter a single token. (replace-match-string-symbols to) - (list from (car to) current-prefix-arg start end))) + (list from (car to) current-prefix-arg + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) (perform-replace regexp (cons 'replace-eval-replacement to-expr) t t delimited nil nil start end)) @@ -222,10 +241,7 @@ A prefix argument N says to use each replacement string N times before rotating to the next. Fourth and fifth arg START and END specify the region to operate on." (interactive - (let (from to start end) - (when (and transient-mark-mode mark-active) - (setq start (region-beginning) - end (region-end))) + (let (from to) (setq from (if query-replace-interactive (car regexp-search-ring) (read-from-minibuffer "Map query replace (regexp): " @@ -236,7 +252,11 @@ Fourth and fifth arg START and END specify the region to operate on." from) nil nil nil 'query-replace-history from t)) - (list from to start end current-prefix-arg))) + (list from to current-prefix-arg + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) (let (replacements) (if (listp to-strings) (setq replacements to-strings) @@ -277,7 +297,14 @@ What you probably want is a loop like this: which will run faster and will not set the mark or print anything. \(You may need a more complex loop if FROM-STRING can match the null string and TO-STRING is also null.)" - (interactive (query-replace-read-args "Replace string" nil)) + (interactive + (let ((common + (query-replace-read-args "Replace string" nil))) + (list (nth 0 common) (nth 1 common) (nth 2 common) + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) (perform-replace from-string to-string nil nil delimited nil nil start end)) (defun replace-regexp (regexp to-string &optional delimited start end) @@ -304,7 +331,14 @@ What you probably want is a loop like this: (while (re-search-forward REGEXP nil t) (replace-match TO-STRING nil nil)) which will run faster and will not set the mark or print anything." - (interactive (query-replace-read-args "Replace regexp" t)) + (interactive + (let ((common + (query-replace-read-args "Replace regexp" t))) + (list (nth 0 common) (nth 1 common) (nth 2 common) + (if (and transient-mark-mode mark-active) + (region-beginning)) + (if (and transient-mark-mode mark-active) + (region-end))))) (perform-replace regexp to-string nil t delimited nil nil start end)) |