]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/isearch.el (search-exit-option): Add option 'append'.
authorJuri Linkov <juri@linkov.net>
Thu, 8 Mar 2018 22:29:04 +0000 (00:29 +0200)
committerJuri Linkov <juri@linkov.net>
Thu, 8 Mar 2018 22:29:04 +0000 (00:29 +0200)
(isearch-pre-command-hook): Use it.

* doc/emacs/search.texi: Replace search-exit-option option nil with append.

https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00202.html

doc/emacs/search.texi
lisp/isearch.el

index 0de3aee1b2162fd72312cf99473fd4aa042980f4..8ac9794c379020f643503044c85c9ef41a64416d 100644 (file)
@@ -446,7 +446,7 @@ they are not themselves part of incremental search.
 search exits the search before executing the command.  Thus, the
 command operates on the buffer from which you invoked the search.
 However, if you customize the variable @code{search-exit-option} to
-@code{nil}, the characters which you type that are not interpreted by
+@code{append}, the characters which you type that are not interpreted by
 the incremental search are simply appended to the search string.  This
 is so you could include in the search string control characters, such
 as @kbd{C-a}, that would normally exit the search and invoke the
index 96faa27c1746a20a52e2649301a0370430601a96..4f5f4948757f0ede34e54e399e14402578f0448e 100644 (file)
@@ -77,11 +77,14 @@ If `shift-move', extend the search string by motion commands
 while holding down the shift key.
 Both `move' and `shift-move' extend the search string by yanking text
 that ends at the new position after moving point in the current buffer.
+If `append', the characters which you type that are not interpreted by
+the incremental search are simply appended to the search string.
 If nil, run the command without exiting Isearch."
   :type '(choice (const :tag "Terminate incremental search" t)
                  (const :tag "Edit the search string" edit)
                  (const :tag "Extend the search string by motion commands" move)
                  (const :tag "Extend the search string by shifted motion keys" shift-move)
+                 (const :tag "Append control characters to the search string" append)
                  (const :tag "Don't terminate incremental search" nil))
   :version "27.1")
 
@@ -2452,13 +2455,15 @@ See more for options in `search-exit-option'."
                this-command-keys-shift-translated))
       (setq this-command-keys-shift-translated nil)
       (setq isearch-pre-move-point (point)))
+     ;; Append control characters to the search string
+     ((eq search-exit-option 'append)
+      (when (cl-every #'characterp key)
+        (isearch-process-search-string key key))
+      (setq this-command 'ignore))
      ;; Other characters terminate the search and are then executed normally.
      (search-exit-option
       (isearch-done)
-      (isearch-clean-overlays))
-     ;; If search-exit-option is nil, run the command without exiting Isearch.
-     (t
-      (isearch-process-search-string key key)))))
+      (isearch-clean-overlays)))))
 
 (defun isearch-post-command-hook ()
   (cond