Mercurial > emacs
diff lisp/isearch.el @ 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 | 719d61cbaf9f |
children | 3b56f11dd4b6 |
line wrap: on
line diff
--- 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 ()