From 892777baa1739fa5f1f2d1c2975488c3e6f57bae Mon Sep 17 00:00:00 2001
From: Chong Yidong <cyd@stupidchicken.com>
Date: Sun, 6 Mar 2011 13:24:11 -0500
Subject: [PATCH] Bind C-y in Isearch to isearch-yank-kill.

* lisp/isearch.el (isearch-mode-map): Bind C-y to isearch-yank-kill,
and move isearch-yank-line to M-s C-e.

* doc/emacs/search.texi (Isearch Yank): C-y now bound to isearch-yank-kill.
---
 doc/emacs/ChangeLog   |  4 ++++
 doc/emacs/search.texi | 31 ++++++++++++++++---------------
 etc/NEWS              |  9 +++++++++
 lisp/ChangeLog        |  5 +++++
 lisp/isearch.el       |  3 ++-
 5 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index dc43450110f..dfdef6a0b05 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
+2011-03-06  Chong Yidong  <cyd@stupidchicken.com>
+
+	* search.texi (Isearch Yank): C-y now bound to isearch-yank-kill.
+
 2011-03-03  Drake Wilson  <drake@begriffli.ch>  (tiny change)
 
 	* misc.texi (emacsclient Options): Add q/quiet.
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index e3c0445e189..9fdccc3218d 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -271,19 +271,24 @@ keybindings.  These keybindings are part of the keymap
 @node Isearch Yank
 @subsection Isearch Yanking
 
-  Within incremental search, you can use @kbd{C-w} and @kbd{C-y} to grab
-text from the buffer into the search string.  This makes it convenient
-to search for another occurrence of text at point.
+  Within incremental search, @kbd{C-y} (@code{isearch-yank-kill})
+copies text from the kill ring into the search string.  It uses the
+same text that @kbd{C-y}, outside of incremental search, would
+normally yank into the buffer.  @kbd{Mouse-2} in the echo area does
+the same.  @xref{Yanking}.
 
-  @kbd{C-w} copies the character or word after point and adds it to
-the search string, advancing point over it.  (The decision, whether to
-copy a character or a word, is heuristic.)
+  @kbd{C-w} (@code{isearch-yank-word-or-char}) grabs the next
+character or word at point, and adds it to the search string.  This is
+convenient for searching for another occurrence of the text at point.
+(The decision, whether to copy a character or a word, is heuristic.)
 
-  @kbd{C-y} is similar to @kbd{C-w} but copies all the rest of the
-current line into the search string.  If point is already at the end
-of a line, it grabs the entire next line.  If the search is currently
-case-insensitive, both @kbd{C-y} and @kbd{C-w} convert the text they
-copy to lower case, so that the search remains case-insensitive.
+  Similarly, @kbd{M-s C-e} (@code{isearch-yank-line}) grabs the rest
+of the current line, and adds it to the search string.  If point is
+already at the end of a line, it grabs the entire next line.
+
+  If the search is currently case-insensitive, both @kbd{C-w} and
+@kbd{M-s C-e} convert the text they copy to lower case, so that the
+search remains case-insensitive.
 
   @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one
 character at a time: @kbd{C-M-w} deletes the last character from the
@@ -293,10 +298,6 @@ after point into the search string is to enter the minibuffer by
 @kbd{M-e} and to type @kbd{C-f} at the end of the search string in the
 minibuffer.
 
-  The character @kbd{M-y} copies text from the kill ring into the
-search string.  It uses the same text that @kbd{C-y} would yank.
-@kbd{Mouse-2} in the echo area does the same.  @xref{Yanking}.
-
 @node Isearch Scroll
 @subsection Scrolling During Incremental Search
 
diff --git a/etc/NEWS b/etc/NEWS
index df9884e94b1..ac7fdcbab0c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -247,6 +247,15 @@ replaced with Lisp commands `doc-file-to-man' and `doc-file-to-info'.
 
 * Editing Changes in Emacs 24.1
 
+** Search changes
+
++++
+*** C-y in Isearch is now bound to isearch-yank-kill, instead of
+isearch-yank-line.
+
++++
+*** M-s C-e in Isearch is now bound to isearch-yank-line.
+
 +++
 ** There is a new command `count-words-region', which does what you expect.
 
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0965642a0ea..e4d402afa76 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-06  Chong Yidong  <cyd@stupidchicken.com>
+
+	* isearch.el (isearch-mode-map): Bind C-y to isearch-yank-kill,
+	and move isearch-yank-line to M-s C-e (Bug#8183).
+
 2011-03-06  Alan Mackenzie  <acm@muc.de>
 
 	* progmodes/cc-engine.el (c-guess-basic-syntax): Reindent.
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 5aadac4a3b1..e13d9673514 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -464,7 +464,8 @@ This is like `describe-bindings', but displays only Isearch keys."
     (define-key map    "\C-w" 'isearch-yank-word-or-char)
     (define-key map "\M-\C-w" 'isearch-del-char)
     (define-key map "\M-\C-y" 'isearch-yank-char)
-    (define-key map    "\C-y" 'isearch-yank-line)
+    (define-key map    "\C-y" 'isearch-yank-kill)
+    (define-key map "\M-s\C-e" 'isearch-yank-line)
 
     (define-key map (char-to-string help-char) isearch-help-map)
     (define-key map [help] isearch-help-map)
-- 
2.39.5