]> git.eshelyaron.com Git - emacs.git/commitdiff
Factor isearch word description into new function
authorDaniel Colascione <dancol@dancol.org>
Sun, 5 Jul 2015 00:10:55 +0000 (17:10 -0700)
committerDaniel Colascione <dancol@dancol.org>
Sun, 5 Jul 2015 00:10:55 +0000 (17:10 -0700)
* lisp/isearch.el (isearch--describe-word-mode): New function.
(isearch-message-prefix, isearch-query-replace): Use it.

lisp/isearch.el

index a103c5ab59bc7bb58566aab9ff3f5000849f2364..8d4bf24c6fb719a0881aa4e30fd8e4b25a1c023d 100644 (file)
@@ -1766,16 +1766,8 @@ replacements from Isearch is `M-s w ... M-%'."
      (query-replace-read-to
       isearch-string
       (concat "Query replace"
-             (if (or delimited isearch-word)
-                 (let* ((symbol (or delimited isearch-word))
-                        (string (and symbol (symbolp symbol)
-                                     (get symbol 'isearch-message-prefix))))
-                   (if (stringp string)
-                       ;; Move space from the end to the beginning.
-                       (replace-regexp-in-string "\\(.*\\) \\'" " \\1" string)
-                     " word"))
-               "")
-             (if isearch-regexp " regexp" "")
+              (isearch--describe-word-mode (or delimited isearch-word) t)
+              (if isearch-regexp " regexp" "")
              (if backward " backward" "")
              (if (and transient-mark-mode mark-active) " in region" ""))
       isearch-regexp)
@@ -2521,6 +2513,21 @@ If there is no completion possible, say so and continue searching."
             (isearch-message-suffix c-q-hack)))
     (if c-q-hack m (let ((message-log-max nil)) (message "%s" m)))))
 
+(defun isearch--describe-word-mode (word-mode &optional space-before)
+  "Make a string for describing WORD-MODE.
+If SPACE-BEFORE is non-nil,  put a space before, instead of after,
+the word mode."
+  (let ((description
+         (cond ((and (symbolp word-mode)
+                     (get word-mode 'isearch-message-prefix))
+                (get word-mode 'isearch-message-prefix))
+               (word-mode "word ")
+               (t ""))))
+    (if space-before
+        ;; Move space from the end to the beginning.
+        (replace-regexp-in-string "\\(.*\\) \\'" " \\1" description)
+      description)))
+
 (defun isearch-message-prefix (&optional ellipsis nonincremental)
   ;; If about to search, and previous search regexp was invalid,
   ;; check that it still is.  If it is valid now,
@@ -2547,13 +2554,9 @@ If there is no completion possible, say so and continue searching."
                         (let ((np (cdr (assq 'isearch-message-prefix props))))
                           (if np (setq prefix (concat np prefix)))))
                       isearch-filter-predicate)
-                    prefix)
-                  (if isearch-word
-                      (or (and (symbolp isearch-word)
-                               (get isearch-word 'isearch-message-prefix))
-                          "word ")
-                    "")
-                  (if isearch-regexp "regexp " "")
+                     prefix)
+                   (isearch--describe-word-mode isearch-word)
+                   (if isearch-regexp "regexp " "")
                   (cond
                    (multi-isearch-file-list "multi-file ")
                    (multi-isearch-buffer-list "multi-buffer ")