emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: History for query replace pairs


From: Juri Linkov
Subject: Re: History for query replace pairs
Date: Wed, 08 Oct 2014 01:11:52 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)

> So the first RET will actually do almost the same as TAB would do
> in the two-field minibuffer to switch to editing the TO part.

This is the minimal patch to implement this.  Opinions?

=== modified file 'lisp/replace.el'
--- lisp/replace.el     2014-08-25 02:36:45 +0000
+++ lisp/replace.el     2014-10-07 22:07:18 +0000
@@ -56,8 +56,8 @@ (defvar query-replace-history nil
 
 (defvar query-replace-defaults nil
   "Default values of FROM-STRING and TO-STRING for `query-replace'.
-This is a cons cell (FROM-STRING . TO-STRING), or nil if there is
-no default value.")
+This is a list of cons cells (FROM-STRING . TO-STRING),
+or nil if there is no default values.")
 
 (defvar query-replace-interactive nil
   "Non-nil means `query-replace' uses the last search string.
@@ -135,8 +135,8 @@ (defun query-replace-read-from (prompt r
           (prompt
            (if query-replace-defaults
                (format "%s (default %s -> %s): " prompt
-                       (query-replace-descr (car query-replace-defaults))
-                       (query-replace-descr (cdr query-replace-defaults)))
+                       (query-replace-descr (car (car query-replace-defaults)))
+                       (query-replace-descr (cdr (car 
query-replace-defaults))))
              (format "%s: " prompt)))
           (from
            ;; The save-excursion here is in case the user marks and copies
@@ -149,9 +149,9 @@ (defun query-replace-read-from (prompt r
                 prompt nil nil nil query-replace-from-history-variable
                 (car (if regexp-flag regexp-search-ring search-ring)) t)))))
       (if (and (zerop (length from)) query-replace-defaults)
-         (cons (car query-replace-defaults)
+         (cons (car (car query-replace-defaults))
                (query-replace-compile-replacement
-                (cdr query-replace-defaults) regexp-flag))
+                (cdr (car query-replace-defaults)) regexp-flag))
        (add-to-history query-replace-from-history-variable from nil t)
        ;; Warn if user types \n or \t, but don't reject the input.
        (and regexp-flag
@@ -213,10 +213,10 @@ (defun query-replace-read-to (from promp
      (let* ((history-add-new-input nil)
            (to (read-from-minibuffer
                 (format "%s %s with: " prompt (query-replace-descr from))
-                nil nil nil
+                (cdr (assoc from query-replace-defaults)) nil nil
                 query-replace-to-history-variable from t)))
        (add-to-history query-replace-to-history-variable to nil t)
-       (setq query-replace-defaults (cons from to))
+       (push (cons from to) query-replace-defaults)
        to))
    regexp-flag))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]