[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/replace.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/replace.el |
Date: |
Mon, 05 Jul 2004 20:12:13 -0400 |
Index: emacs/lisp/replace.el
diff -c emacs/lisp/replace.el:1.182 emacs/lisp/replace.el:1.183
*** emacs/lisp/replace.el:1.182 Mon Jul 5 23:12:28 2004
--- emacs/lisp/replace.el Tue Jul 6 00:06:04 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
***************
*** 64,100 ****
:group 'matching
:version "21.4")
(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)
! (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)
nil nil nil
query-replace-to-history-variable from t))))
(when (and regexp-flag
--- 64,117 ----
: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
***************
*** 137,143 ****
(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)
--- 154,161 ----
(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)
***************
*** 269,282 ****
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)))
(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.
--- 287,302 ----
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.
***************
*** 317,323 ****
'query-replace-history nil t)))
(to (read-from-minibuffer
(format "Query replace %s with (space-separated strings): "
! from)
nil nil nil
'query-replace-history from t)))
(list from to
--- 337,343 ----
'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
***************
*** 760,766 ****
(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
***************
*** 1538,1542 ****
(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, Juri Linkov, 2004/07/01
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Richard M . Stallman, 2004/07/02
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Juri Linkov, 2004/07/03
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Stefan Monnier, 2004/07/05
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Stefan Monnier, 2004/07/05
- [Emacs-diffs] Changes to emacs/lisp/replace.el,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Stefan Monnier, 2004/07/06
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Richard M . Stallman, 2004/07/17
- [Emacs-diffs] Changes to emacs/lisp/replace.el, Richard M . Stallman, 2004/07/24