mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-12 16:23:57 +00:00
(query-replace-descr): New fun.
(query-replace-read-from, query-replace-read-args): Default to the last from&to. (query-replace-read-to): Quote the `from' string when displaying it. (query-replace-regexp-eval): Immediately check read-only status. Use query-replace-read-from to get the \n checking. Quote the `from' string when displaying it. (map-query-replace-regexp, occur-read-primary-args): Quote the `from' string when displaying it.
This commit is contained in:
parent
fe3b7e35ad
commit
6f1df6d9d6
@ -1,7 +1,34 @@
|
||||
2004-07-05 Stefan <monnier@iro.umontreal.ca>
|
||||
|
||||
* replace.el (query-replace-descr): New fun.
|
||||
(query-replace-read-from, query-replace-read-args): Default to the
|
||||
previous from&to.
|
||||
(query-replace-read-to): Quote the `from' string when displaying it.
|
||||
(query-replace-regexp-eval): Immediately check read-only status.
|
||||
Use query-replace-read-from to get the \n checking.
|
||||
Quote the `from' string when displaying it.
|
||||
(map-query-replace-regexp, occur-read-primary-args):
|
||||
Quote the `from' string when displaying it.
|
||||
|
||||
* isearch.el (isearch-query-replace): Pass the regexp-ness and
|
||||
delimited-ness of the search to query-replace.
|
||||
|
||||
* replace.el (query-replace-read-from, query-replace-read-to):
|
||||
New funs extracted from query-replace-read-args.
|
||||
(query-replace-read-args): Use them.
|
||||
|
||||
* replace.el (query-replace-interactive, query-replace-read-args):
|
||||
Remove the `initial' special value.
|
||||
(query-replace-regexp-eval, map-query-replace-regexp): Simplify.
|
||||
(occur-engine): Remove unused var `matchend'.
|
||||
|
||||
* isearch.el (isearch-query-replace, isearch-query-replace-regexp):
|
||||
Use the search string without prompting.
|
||||
|
||||
2004-07-05 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* international/mule.el (decode-coding-inserted-region): Set
|
||||
last-coding-system-used only when coding is nil.
|
||||
* international/mule.el (decode-coding-inserted-region):
|
||||
Set last-coding-system-used only when coding is nil.
|
||||
|
||||
2004-07-03 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
@ -14,8 +41,7 @@
|
||||
|
||||
2004-07-03 KOSEKI Yoshinori <kose@meadowy.org>
|
||||
|
||||
* iimage.el (turn-on-iimage-mode, iimage-mode): Add autoload
|
||||
cookies.
|
||||
* iimage.el (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
|
||||
(iimage-mode-image-search-path): New user option to search the
|
||||
image file.
|
||||
(iimage-locate-file): New funcion. Emacs21.3 or earlier does not
|
||||
|
@ -1,7 +1,7 @@
|
||||
;;; replace.el --- replace commands for Emacs
|
||||
|
||||
;; Copyright (C) 1985, 86, 87, 92, 94, 96, 1997, 2000, 2001, 2002,
|
||||
;; 2003, 2004 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, 2002,
|
||||
;; 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Maintainer: FSF
|
||||
|
||||
@ -64,37 +64,54 @@ strings or patterns."
|
||||
:group 'matching
|
||||
:version "21.4")
|
||||
|
||||
(defun query-replace-descr (string)
|
||||
(mapconcat 'isearch-text-char-description string ""))
|
||||
|
||||
(defun query-replace-read-from (string regexp-flag)
|
||||
"Query and return the `from' argument of a query-replace operation."
|
||||
"Query and return the `from' argument of a query-replace operation.
|
||||
The return value can also be a pair (FROM . TO) indicating that the user
|
||||
wants to replace FROM with TO."
|
||||
(if query-replace-interactive
|
||||
(car (if regexp-flag regexp-search-ring search-ring))
|
||||
(let* ((from
|
||||
(let* ((lastfrom (car (symbol-value query-replace-from-history-variable)))
|
||||
(lastto (car (symbol-value query-replace-to-history-variable)))
|
||||
(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
|
||||
(when (equal lastfrom lastto)
|
||||
;; Typically, this is because the two histlists are shared.
|
||||
(setq lastfrom (cadr (symbol-value
|
||||
query-replace-from-history-variable))))
|
||||
(read-from-minibuffer
|
||||
(format "%s: " string)
|
||||
(if (and lastto lastfrom)
|
||||
(format "%s (default %s -> %s): " string
|
||||
(query-replace-descr lastfrom)
|
||||
(query-replace-descr lastto))
|
||||
(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)
|
||||
(let ((match (match-string 3 from)))
|
||||
(cond
|
||||
((string= match "\\n")
|
||||
(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)))
|
||||
from)))
|
||||
(if (and (zerop (length from)) lastto lastfrom)
|
||||
(cons lastfrom lastto)
|
||||
;; Warn if user types \n or \t, but don't reject the input.
|
||||
(and regexp-flag
|
||||
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
|
||||
(let ((match (match-string 3 from)))
|
||||
(cond
|
||||
((string= match "\\n")
|
||||
(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)))
|
||||
from))))
|
||||
|
||||
(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)
|
||||
(format "%s %s with: " string (query-replace-descr from))
|
||||
nil nil nil
|
||||
query-replace-to-history-variable from t))))
|
||||
(when (and regexp-flag
|
||||
@ -137,7 +154,8 @@ strings or patterns."
|
||||
(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)))
|
||||
(to (if (consp from) (prog1 (cdr from) (setq from (car from)))
|
||||
(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)
|
||||
@ -269,14 +287,16 @@ 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 (if query-replace-interactive
|
||||
(car regexp-search-ring)
|
||||
(read-from-minibuffer "Query replace regexp: "
|
||||
nil nil nil
|
||||
query-replace-from-history-variable
|
||||
nil t)))
|
||||
(barf-if-buffer-read-only)
|
||||
(let* ((from
|
||||
;; Let-bind the history var to disable the "foo -> bar" default.
|
||||
;; Maybe we shouldn't disable this default, but for now I'll
|
||||
;; leave it off. --Stef
|
||||
(let ((query-replace-to-history-variable nil))
|
||||
(query-replace-read-from "Query replace regexp" t)))
|
||||
(to (list (read-from-minibuffer
|
||||
(format "Query replace regexp %s with eval: " from)
|
||||
(format "Query replace regexp %s with eval: "
|
||||
(query-replace-descr from))
|
||||
nil nil t query-replace-to-history-variable from t))))
|
||||
;; We make TO a list because replace-match-string-symbols requires one,
|
||||
;; and the user might enter a single token.
|
||||
@ -317,7 +337,7 @@ Fourth and fifth arg START and END specify the region to operate on."
|
||||
'query-replace-history nil t)))
|
||||
(to (read-from-minibuffer
|
||||
(format "Query replace %s with (space-separated strings): "
|
||||
from)
|
||||
(query-replace-descr from))
|
||||
nil nil nil
|
||||
'query-replace-history from t)))
|
||||
(list from to
|
||||
@ -760,7 +780,7 @@ If the value is nil, don't highlight the buffer names specially."
|
||||
(read-from-minibuffer
|
||||
(if default
|
||||
(format "List lines matching regexp (default `%s'): "
|
||||
default)
|
||||
(query-replace-descr default))
|
||||
"List lines matching regexp: ")
|
||||
nil
|
||||
nil
|
||||
@ -1538,5 +1558,5 @@ make, or the user didn't cancel the call."
|
||||
(if (facep 'query-replace)
|
||||
'query-replace 'region)))))
|
||||
|
||||
;;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
|
||||
;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
|
||||
;;; replace.el ends here
|
||||
|
Loading…
Reference in New Issue
Block a user