[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/replace.el [emacs-unicode-2]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/replace.el [emacs-unicode-2] |
Date: |
Mon, 05 Jul 2004 23:00:47 -0400 |
Index: emacs/lisp/replace.el
diff -c emacs/lisp/replace.el:1.165.4.3 emacs/lisp/replace.el:1.165.4.4
*** emacs/lisp/replace.el:1.165.4.3 Tue Jun 29 16:45:05 2004
--- emacs/lisp/replace.el Tue Jul 6 02:56:08 2004
***************
*** 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.
;; Maintainer: FSF
--- 1,7 ----
;;; replace.el --- replace commands for Emacs
! ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, 2002,
! ;; 2003, 2004 Free Software Foundation, Inc.
;; Maintainer: FSF
***************
*** 36,46 ****
(defvar query-replace-history nil)
! (defcustom query-replace-interactive nil
"Non-nil means `query-replace' uses the last search string.
! That becomes the \"string to replace\"."
! :type 'boolean
! :group 'matching)
(defcustom query-replace-from-history-variable 'query-replace-history
"History list to use for the FROM argument of `query-replace' commands.
--- 36,44 ----
(defvar query-replace-history nil)
! (defvar query-replace-interactive nil
"Non-nil means `query-replace' uses the last search string.
! That becomes the \"string to replace\".")
(defcustom query-replace-from-history-variable 'query-replace-history
"History list to use for the FROM argument of `query-replace' commands.
***************
*** 66,100 ****
: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)))
! ;; 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))))
! (save-excursion
! (setq to (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)
--- 64,119 ----
: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.
! 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* ((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
! (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))))
! (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 (query-replace-descr from))
! nil nil nil
! query-replace-to-history-variable from t))))
(when (and regexp-flag
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
(let (pos list char)
***************
*** 109,122 ****
((eq char ?\,)
(setq pos (read-from-string to))
(push `(replace-quote ,(car pos)) list)
! (setq to (substring
! to (+ (cdr pos)
! ;; Swallow a space after a symbol
! ;; if there is a space.
! (if (string-match
! "^[^])\"] "
! (substring to (1- (cdr pos))))
! 1 0))))))
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)))
(setq to (nreverse (delete "" (cons to list)))))
(replace-match-string-symbols to)
--- 128,146 ----
((eq char ?\,)
(setq pos (read-from-string to))
(push `(replace-quote ,(car pos)) list)
! (let ((end
! ;; Swallow a space after a symbol
! ;; if there is a space.
! (if (and (or (symbolp (car pos))
! ;; Swallow a space after 'foo
! ;; but not after (quote foo).
! (and (eq (car-safe (car pos)) 'quote)
! (not (= ?\( (aref to 0)))))
! (eq (string-match " " to (cdr pos))
! (cdr pos)))
! (1+ (cdr pos))
! (cdr pos))))
! (setq to (substring to end)))))
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)))
(setq to (nreverse (delete "" (cons to list)))))
(replace-match-string-symbols to)
***************
*** 124,129 ****
--- 148,161 ----
(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 (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)
***************
*** 199,205 ****
followed by a Lisp expression. Each
replacement evaluates that expression to compute the replacement
string. Inside of that expression, `\\&' is a string denoting the
! whole match as a sting, `\\N' for a partial match, `\\#&' and `\\#N'
for the whole or a partial match converted to a number with
`string-to-number', and `\\#' itself for the number of replacements
done so far (starting with zero).
--- 231,237 ----
followed by a Lisp expression. Each
replacement evaluates that expression to compute the replacement
string. Inside of that expression, `\\&' is a string denoting the
! whole match as a string, `\\N' for a partial match, `\\#&' and `\\#N'
for the whole or a partial match converted to a number with
`string-to-number', and `\\#' itself for the number of replacements
done so far (starting with zero).
***************
*** 255,270 ****
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)
! (if query-replace-interactive
! (setq from (car regexp-search-ring))
! (setq from (read-from-minibuffer "Query replace regexp: "
! nil nil nil
! query-replace-from-history-variable
! nil t)))
! (setq to (list (read-from-minibuffer
! (format "Query replace regexp %s with eval: " 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.
(replace-match-string-symbols to)
--- 287,303 ----
only matches that are surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on."
(interactive
! (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: "
! (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.
(replace-match-string-symbols to)
***************
*** 297,313 ****
before rotating to the next.
Fourth and fifth arg START and END specify the region to operate on."
(interactive
! (let (from to)
! (setq from (if query-replace-interactive
(car regexp-search-ring)
(read-from-minibuffer "Map query replace (regexp): "
nil nil nil
'query-replace-history nil t)))
! (setq to (read-from-minibuffer
(format "Query replace %s with (space-separated strings): "
! from)
nil nil nil
! 'query-replace-history from t))
(list from to
(and current-prefix-arg
(prefix-numeric-value current-prefix-arg))
--- 330,345 ----
before rotating to the next.
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 "Map query replace (regexp): "
nil nil nil
'query-replace-history nil t)))
! (to (read-from-minibuffer
(format "Query replace %s with (space-separated strings): "
! (query-replace-descr from))
nil nil nil
! 'query-replace-history from t)))
(list from to
(and current-prefix-arg
(prefix-numeric-value current-prefix-arg))
***************
*** 748,754 ****
(read-from-minibuffer
(if default
(format "List lines matching regexp (default `%s'): "
! default)
"List lines matching regexp: ")
nil
nil
--- 780,786 ----
(read-from-minibuffer
(if default
(format "List lines matching regexp (default `%s'): "
! (query-replace-descr default))
"List lines matching regexp: ")
nil
nil
***************
*** 911,917 ****
(let ((matches 0) ;; count of matched lines
(lines 1) ;; line count
(matchbeg 0)
- (matchend 0)
(origpt nil)
(begpt nil)
(endpt nil)
--- 943,948 ----
***************
*** 931,938 ****
(setq origpt (point))
(when (setq endpt (re-search-forward regexp nil t))
(setq matches (1+ matches)) ;; increment match count
! (setq matchbeg (match-beginning 0)
! matchend (match-end 0))
(setq begpt (save-excursion
(goto-char matchbeg)
(line-beginning-position)))
--- 962,968 ----
(setq origpt (point))
(when (setq endpt (re-search-forward regexp nil t))
(setq matches (1+ matches)) ;; increment match count
! (setq matchbeg (match-beginning 0))
(setq begpt (save-excursion
(goto-char matchbeg)
(line-beginning-position)))
***************
*** 1528,1532 ****
(if (facep 'query-replace)
'query-replace 'region)))))
! ;;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
;;; replace.el ends here
--- 1558,1562 ----
(if (facep 'query-replace)
'query-replace 'region)))))
! ;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
;;; replace.el ends here
- [Emacs-diffs] Changes to emacs/lisp/replace.el [emacs-unicode-2],
Miles Bader <=