changeset 100509:9c2f92d8fc34

(Info-isearch-search): Implement lax version of incremental word search in Info. (Info-isearch-start): Set Info-isearch-initial-node to the current node when search is nonincremental to not stop at the initial node in this case. (Info-mode-map): Unbind "\M-s" from `Info-search'.
author Juri Linkov <juri@jurta.org>
date Fri, 19 Dec 2008 00:18:52 +0000
parents 00c300ec74ba
children 4237a91e0f39
files lisp/info.el
diffstat 1 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/info.el	Thu Dec 18 22:57:53 2008 +0000
+++ b/lisp/info.el	Fri Dec 19 00:18:52 2008 +0000
@@ -1815,7 +1815,12 @@
 					(replace-regexp-in-string
 					 "^\\W+\\|\\W+$" "" string)
 					nil t)
-				 "\\b")
+				 ;; Lax version of word search
+				 (if (or isearch-nonincremental
+					 (eq (length string)
+					     (length (isearch-string-state
+						      (car isearch-cmds)))))
+				     "\\b"))
 			 bound noerror count
 			 (unless isearch-forward 'backward))
 	  (Info-search (if isearch-regexp string (regexp-quote string))
@@ -1845,7 +1850,10 @@
       (progn (Info-find-node file node) (sit-for 0))))
 
 (defun Info-isearch-start ()
-  (setq Info-isearch-initial-node nil))
+  (setq Info-isearch-initial-node
+	;; Don't stop at initial node for nonincremental search.
+	;; Otherwise this variable is set after first search failure.
+	(and isearch-nonincremental Info-current-node)))
 
 (defun Info-isearch-filter-predicate (beg-found found)
   "Skip invisible text, node header line and Tag Table node."
@@ -3241,8 +3249,6 @@
     (define-key map "r" 'Info-history-forward)
     (define-key map "s" 'Info-search)
     (define-key map "S" 'Info-search-case-sensitively)
-    ;; For consistency with Rmail.
-    (define-key map "\M-s" 'Info-search)
     (define-key map "\M-n" 'clone-buffer)
     (define-key map "t" 'Info-top-node)
     (define-key map "T" 'Info-toc)