diff options
author | Karl Heuer <kwzh@gnu.org> | 1997-11-18 22:31:16 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1997-11-18 22:31:16 +0000 |
commit | 9cf081fa5cbfae43320c1e2fdfa9f4c6b13dfe59 (patch) | |
tree | f9181586cb3db5d7ed71db3c31bda38053221ad4 /lisp/isearch.el | |
parent | 4877ba13d7971e10bf8b35e6c675f06bd9c46d2a (diff) | |
download | emacs-9cf081fa5cbfae43320c1e2fdfa9f4c6b13dfe59.tar.gz |
(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.
Diffstat (limited to 'lisp/isearch.el')
-rw-r--r-- | lisp/isearch.el | 66 |
1 files 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 () |