]> git.eshelyaron.com Git - emacs.git/commitdiff
* isearch.el (isearch-allow-prefix): New user option.
authorAlan Mackenzie <acm@muc.de>
Wed, 5 Jun 2013 20:57:09 +0000 (20:57 +0000)
committerAlan Mackenzie <acm@muc.de>
Wed, 5 Jun 2013 20:57:09 +0000 (20:57 +0000)
        (isearch-other-meta-char): don't exit isearch when a prefix
        argument is typed whilst `isearch-allow-prefix' is non-nil.

        * search.texi (Isearch Scroll): Rename to "Not Exiting Isearch".
        (Net Exiting Isearch): Document new user option
        `isearch-allow-prefix'.

* etc/NEWS.  Entry for this change.

doc/emacs/ChangeLog
doc/emacs/emacs.texi
doc/emacs/search.texi
etc/NEWS
lisp/ChangeLog
lisp/isearch.el

index a700f225a79f05f78a159d8d23497a31fb8ce37d..f384a0639d84e7fc8a5a2cdbb7315e724dce1ed8 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-05  Alan Mackenzie  <acm@muc.de>
+
+       * search.texi (Isearch Scroll): Rename to "Not Exiting Isearch".
+       (Net Exiting Isearch): Document new user option
+       `isearch-allow-prefix'.
+
 2013-06-03  Juri Linkov  <juri@jurta.org>
 
        * display.texi (Highlight Interactively): Add global keybindings
index d2ec215402499e5fc6a4527e53cfdb36b895ca83..e2d0b0eebf6f257c4254b2e7ac55ebe3e2684504 100644 (file)
@@ -396,14 +396,14 @@ Searching and Replacement
 
 Incremental Search
 
-* Basic Isearch::       Basic incremental search commands.
-* Repeat Isearch::      Searching for the same string again.
-* Error in Isearch::    When your string is not found.
-* Special Isearch::     Special input in incremental search.
-* Isearch Yank::        Commands that grab text into the search string
-                          or else edit the search string.
-* Isearch Scroll::      Scrolling during an incremental search.
-* Isearch Minibuffer::  Incremental search of the minibuffer history.
+* Basic Isearch::        Basic incremental search commands.
+* Repeat Isearch::       Searching for the same string again.
+* Error in Isearch::     When your string is not found.
+* Special Isearch::      Special input in incremental search.
+* Isearch Yank::         Commands that grab text into the search string
+                           or else edit the search string.
+* Not Exiting Isearch::  Prefix argument and scrolling commands.
+* Isearch Minibuffer::   Incremental search of the minibuffer history.
 
 Replacement Commands
 
index e146177255e026a5a4e1c2cbf95a6ea2a41dca01..ead7c3cbf1631863622a550fe82d50716d3bbc86 100644 (file)
@@ -52,14 +52,14 @@ Incremental search backward (@code{isearch-backward}).
 @end table
 
 @menu
-* Basic Isearch::       Basic incremental search commands.
-* Repeat Isearch::      Searching for the same string again.
-* Error in Isearch::    When your string is not found.
-* Special Isearch::     Special input in incremental search.
-* Isearch Yank::        Commands that grab text into the search string
-                          or else edit the search string.
-* Isearch Scroll::      Scrolling during an incremental search.
-* Isearch Minibuffer::  Incremental search of the minibuffer history.
+* Basic Isearch::        Basic incremental search commands.
+* Repeat Isearch::       Searching for the same string again.
+* Error in Isearch::     When your string is not found.
+* Special Isearch::      Special input in incremental search.
+* Isearch Yank::         Commands that grab text into the search string
+                           or else edit the search string.
+* Not Exiting Isearch::  Prefix argument and scrolling commands.
+* Isearch Minibuffer::   Incremental search of the minibuffer history.
 @end menu
 
 @node Basic Isearch
@@ -332,9 +332,28 @@ alternative method to add the character after point is to enter the
 minibuffer with @kbd{M-e} (@pxref{Repeat Isearch}) and type @kbd{C-f}
 at the end of the search string in the minibuffer.
 
-@node Isearch Scroll
-@subsection Scrolling During Incremental Search
+@node Not Exiting Isearch
+@subsection Not Exiting Incremental Search
 
+This subsection describes two categories of commands which you can
+type without exiting the current incremental search, even though they
+are not themselves part of incremental search.
+
+@table @asis
+@item Prefix Arguments
+@vindex isearch-allow-prefix
+  In incremental search, when you enter a prefix argument
+(@pxref{Arguments}), by default it will apply either to the next
+action in the search or to the command that exits the search.
+
+  In previous versions of Emacs, entering a prefix argument always
+terminated the search.  You can revert to this behavior by setting the
+variable @code{isearch-allow-prefix} to @code{nil}.
+
+  When @code{isearch-allow-scroll} is non-@code{nil} (see below),
+prefix arguments always have the default behavior described above.
+
+@item Scrolling Commands
 @vindex isearch-allow-scroll
   Normally, scrolling commands exit incremental search.  If you change
 the variable @code{isearch-allow-scroll} to a non-@code{nil} value,
@@ -366,6 +385,7 @@ This feature can be applied to any command that doesn't permanently
 change point, the buffer contents, the match data, the current buffer,
 or the selected window and frame.  The command must not itself attempt
 an incremental search.
+@end table
 
 @node Isearch Minibuffer
 @subsection Searching the Minibuffer
index 0b533efe163e3fe448eb676281b86a0e7eabec08..8732ffa2fcd6491756fed834be7987bd9ec78759 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -292,6 +292,10 @@ when it's nil).
 *** `query-replace' skips invisible text when `search-invisible' is nil,
 and opens overlays with hidden text when `search-invisible' is `open'.
 
++++
+*** By default, prefix arguments do not now terminate Isearch mode.
+Set `isearch-allow-prefix' to nil to restore old behavior.
+
 ** MH-E has been updated to MH-E version 8.5.
 See MH-E-NEWS for details.
 
index 7de7b079570cf0748dc58794be841e3ed3721268..f40a23a5035d8f66ad26386bda79b70d2ec5dba4 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-05  Alan Mackenzie  <acm@muc.de>
+
+       * isearch.el (isearch-allow-prefix): New user option.
+       (isearch-other-meta-char): don't exit isearch when a prefix
+       argument is typed whilst `isearch-allow-prefix' is non-nil.
+
 2013-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * autorevert.el (auto-revert-notify-handler): Use memq.
index c49b0d7fc59c75dd8fbc394db789b4edfef6f188..e6678d33ea49f5bd10eb89c406f1d26dd69b65c6 100644 (file)
@@ -2152,6 +2152,14 @@ If nil, scrolling commands will first cancel Isearch mode."
   :type 'boolean
   :group 'isearch)
 
+(defcustom isearch-allow-prefix t
+  "Whether prefix arguments are allowed during incremental search.
+If non-nil, entering a prefix argument will not terminate the
+search.  This option is ignored \(presumed t) when
+`isearch-allow-scroll' is set."
+  :type 'boolean
+  :group 'isearch)
+
 (defun isearch-string-out-of-window (isearch-point)
   "Test whether the search string is currently outside of the window.
 Return nil if it's completely visible, or if point is visible,
@@ -2304,12 +2312,19 @@ Isearch mode."
           (setq prefix-arg arg)
           (apply 'isearch-unread keylist)
           (isearch-edit-string))
-          ;; Handle a scrolling function.
-          ((and isearch-allow-scroll
-                (progn (setq key (isearch-reread-key-sequence-naturally keylist))
-                       (setq keylist (listify-key-sequence key))
-                       (setq main-event (aref key 0))
-                       (setq scroll-command (isearch-lookup-scroll-key key))))
+          ;; Handle a scrolling function or prefix argument.
+          ((progn
+            (setq key (isearch-reread-key-sequence-naturally keylist)
+                  keylist (listify-key-sequence key)
+                  main-event (aref key 0))
+            (or (and isearch-allow-scroll
+                     (setq scroll-command (isearch-lookup-scroll-key key)))
+                (and isearch-allow-prefix
+                     (let (overriding-terminal-local-map)
+                       (setq scroll-command (key-binding key))
+                       (memq scroll-command
+                             '(universal-argument
+                               negative-argument digit-argument))))))
            ;; From this point onwards, KEY, KEYLIST and MAIN-EVENT hold a
            ;; complete key sequence, possibly as modified by function-key-map,
            ;; not merely the one or two event fragment which invoked