emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 6bc78d5: * lisp/isearch.el (search-exit-option): Ad


From: Juri Linkov
Subject: [Emacs-diffs] master 6bc78d5: * lisp/isearch.el (search-exit-option): Add option 'append'.
Date: Thu, 8 Mar 2018 17:29:16 -0500 (EST)

branch: master
commit 6bc78d5b16b6bc56f3ef401c519de6ff2fff3111
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>

    * lisp/isearch.el (search-exit-option): Add option 'append'.
    
    (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 |  2 +-
 lisp/isearch.el       | 13 +++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 0de3aee..8ac9794 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -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
address@hidden, the characters which you type that are not interpreted by
address@hidden, 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
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 96faa27..4f5f494 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -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



reply via email to

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