From 9cf081fa5cbfae43320c1e2fdfa9f4c6b13dfe59 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Tue, 18 Nov 1997 22:31:16 +0000 Subject: [PATCH] (isearch-yank-string): New helper function. (isearch-yank-kill, isearch-yank-word, isearch-yank-line): Use it. (isearch-yank-x-selection): New function. (isearch-yank): Function deleted. --- lisp/isearch.el | 66 ++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index d253278fe2f..9d75bc35143 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -944,55 +944,49 @@ If no previous match was done, just beep." (isearch-update)) -(defun isearch-yank (chunk) - ;; Helper for isearch-yank-word and isearch-yank-line - ;; CHUNK should be word, line, kill, or x-sel. - (let ((string (cond - ((eq chunk 'kill) - (current-kill 0)) - ((eq chunk 'x-sel) - (x-get-selection)) - (t - (save-excursion - (and (not isearch-forward) isearch-other-end - (goto-char isearch-other-end)) - (buffer-substring - (point) - (save-excursion - (cond - ((eq chunk 'word) - (forward-word 1)) - ((eq chunk 'line) - (end-of-line))) - (point)))))))) - ;; Downcase the string if not supposed to case-fold yanked strings. - (if (and isearch-case-fold-search - (eq 'not-yanks search-upper-case)) - (setq string (downcase string))) - (if isearch-regexp (setq string (regexp-quote string))) - (setq isearch-string (concat isearch-string string) - isearch-message - (concat isearch-message - (mapconcat 'isearch-text-char-description - string "")) - ;; Don't move cursor in reverse search. - isearch-yank-flag t)) +(defun isearch-yank-string (string) + "Pull STRING into search string." + ;; Downcase the string if not supposed to case-fold yanked strings. + (if (and isearch-case-fold-search + (eq 'not-yanks search-upper-case)) + (setq string (downcase string))) + (if isearch-regexp (setq string (regexp-quote string))) + (setq isearch-string (concat isearch-string string) + isearch-message + (concat isearch-message + (mapconcat 'isearch-text-char-description + string "")) + ;; Don't move cursor in reverse search. + isearch-yank-flag t) (isearch-search-and-update)) (defun isearch-yank-kill () "Pull string from kill ring into search string." (interactive) - (isearch-yank 'kill)) + (isearch-yank-string (current-kill 0))) + +(defun isearch-yank-x-selection () + "Pull current X selection into search string." + (interactive) + (isearch-yank-string (x-get-selection))) (defun isearch-yank-word () "Pull next word from buffer into search string." (interactive) - (isearch-yank 'word)) + (isearch-yank-string + (save-excursion + (and (not isearch-forward) isearch-other-end + (goto-char isearch-other-end)) + (buffer-substring (point) (progn (forward-word 1) (point)))))) (defun isearch-yank-line () "Pull rest of line from buffer into search string." (interactive) - (isearch-yank 'line)) + (isearch-yank-string + (save-excursion + (and (not isearch-forward) isearch-other-end + (goto-char isearch-other-end)) + (buffer-substring (point) (line-end-position))))) (defun isearch-search-and-update () -- 2.39.2