From 98e77be59a28604574c196a4611d44d32aa8a895 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Wed, 23 Feb 2005 17:03:17 +0000 Subject: [PATCH] (Info-isearch-search): New defcustom. (Info-isearch-search): Call the default isearch function when Info-isearch-search is nil. (Info-isearch-wrap): Use variable Info-isearch-search. --- lisp/info.el | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/lisp/info.el b/lisp/info.el index e6f85d19fe1..4905bf0844e 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -201,6 +201,15 @@ a tab, a carriage return (control-M), a newline, and `]+'." :type 'regexp :group 'info) +(defcustom Info-isearch-search t + "*If non-nil, isearch invoked in Info mode uses `Info-search' function. +This allows isearch to search through multiple nodes. +When isearch fails, it wraps and restarts the search from the +top/final node depending on search direction." + :version "22.1" + :type 'boolean + :group 'info) + (defcustom Info-mode-hook ;; Try to obey obsolete Info-fontify settings. (unless (and (boundp 'Info-fontify) (null Info-fontify)) @@ -1637,23 +1646,21 @@ If DIRECTION is `backward', search in the reverse direction." (Info-search regexp bound noerror count 'backward)) (defun Info-isearch-search () - (cond - (isearch-word - (if isearch-forward 'word-search-forward 'word-search-backward)) - (isearch-regexp - (lambda (regexp bound noerror) - (condition-case nil - (progn - (Info-search regexp bound noerror nil - (unless isearch-forward 'backward)) - (point)) - (error nil)))) - (t - (if isearch-forward 'search-forward 'search-backward)))) + (if (and Info-isearch-search (not isearch-word)) + (lambda (string &optional bound noerror count) + (condition-case nil + (progn + (Info-search (if isearch-regexp string (regexp-quote string)) + bound noerror count + (unless isearch-forward 'backward)) + (point)) + (error nil))) + (let ((isearch-search-fun-function nil)) + (isearch-search-fun)))) (defun Info-isearch-wrap () - (if isearch-regexp - (if isearch-forward (Info-top-node) (Info-final-node)) + (when (and Info-isearch-search (not isearch-word)) + (if isearch-forward (Info-top-node) (Info-final-node)) (goto-char (if isearch-forward (point-min) (point-max))))) (defun Info-isearch-push-state () -- 2.39.2