changeset 41648:42271b6bfe3d

(isearch-yank-internal): New helper function. (isearch-yank-char): New function. (isearch-yank-word, isearch-yank-line): Rewrite to use isearch-yank-internal.
author Karl Fogel <kfogel@red-bean.com>
date Wed, 28 Nov 2001 22:34:20 +0000
parents d68d97eb87a7
children 41d73d9565de
files lisp/ChangeLog lisp/isearch.el
diffstat 2 files changed, 25 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Nov 28 22:25:51 2001 +0000
+++ b/lisp/ChangeLog	Wed Nov 28 22:34:20 2001 +0000
@@ -1,3 +1,10 @@
+2001-11-28  Karl Fogel  <kfogel@red-bean.com>
+
+	* isearch.el (isearch-yank-internal): New helper function.
+	(isearch-yank-char): New function.
+	(isearch-yank-word, isearch-yank-line): Rewrite to use
+	isearch-yank-internal.
+
 2001-11-28  Eli Zaretskii  <eliz@is.elta.co.il>
 
 	* mouse.el (mouse-set-font): Make it a no-op if multiple fonts
--- a/lisp/isearch.el	Wed Nov 28 22:25:51 2001 +0000
+++ b/lisp/isearch.el	Wed Nov 28 22:34:20 2001 +0000
@@ -1073,24 +1073,32 @@
 	  (funcall binding click))))))
 
 
-(defun isearch-yank-word ()
-  "Pull next word from buffer into search string."
-  (interactive)
+(defun isearch-yank-internal (jumpform)
+  "Pull the text from point to the point reached by JUMPFORM.
+JUMPFORM is a lambda expression that takes no arguments and returns a
+buffer position, possibly having moved point to that position.  For
+example, it might move point forward by a word and return point, or it
+might return the position of the end of the line."
   (isearch-yank-string
    (save-excursion
      (and (not isearch-forward) isearch-other-end
 	  (goto-char isearch-other-end))
-     (buffer-substring-no-properties
-      (point) (progn (forward-word 1) (point))))))
+     (buffer-substring-no-properties (point) (funcall jumpform)))))
+
+(defun isearch-yank-char ()
+  "Pull next letter from buffer into search string."
+  (interactive)
+  (isearch-yank-internal (lambda () (forward-char 1) (point))))
+
+(defun isearch-yank-word ()
+  "Pull next word from buffer into search string."
+  (interactive)
+  (isearch-yank-internal (lambda () (forward-word 1) (point))))
 
 (defun isearch-yank-line ()
   "Pull rest of line from buffer into search string."
   (interactive)
-  (isearch-yank-string
-   (save-excursion
-     (and (not isearch-forward) isearch-other-end
-	  (goto-char isearch-other-end))
-     (buffer-substring-no-properties (point) (line-end-position)))))
+  (isearch-yank-internal (lambda () (line-end-position))))
 
 
 (defun isearch-search-and-update ()