changeset 100470:4d389d6ecc7a

(minibuffer-local-isearch-map): Unbind "C-w" from `isearch-edit-string-set-word'. (isearch-edit-string-set-word): Remove. (isearch-occur): Imitate the C function `wordify' by replacing non-word character with the \\W+ regexp. (isearch-search-fun): Add `isearch-nonincremental' to the condition of using a non-lax version of `word-search-forward'.
author Juri Linkov <juri@jurta.org>
date Thu, 18 Dec 2008 01:16:26 +0000
parents 75862ddb981c
children ac55019a0cb8
files lisp/isearch.el
diffstat 1 files changed, 14 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/isearch.el	Wed Dec 17 23:28:01 2008 +0000
+++ b/lisp/isearch.el	Thu Dec 18 01:16:26 2008 +0000
@@ -509,7 +509,6 @@
     (define-key map "\M-\t" 'isearch-complete-edit)
     (define-key map "\C-s"  'isearch-forward-exit-minibuffer)
     (define-key map "\C-r"  'isearch-reverse-exit-minibuffer)
-    (define-key map "\C-w"  'isearch-edit-string-set-word)
     (define-key map "\C-f"  'isearch-yank-char-in-minibuffer)
     (define-key map [right] 'isearch-yank-char-in-minibuffer)
     map)
@@ -1194,15 +1193,6 @@
      (isearch-abort)  ;; outside of let to restore outside global values
      )))
 
-;; Obsolete usage of `C-s M-e C-w'.  Remove after 23.1.
-(defvar isearch-new-word)
-(defun isearch-edit-string-set-word ()
-  "Do word search after exiting `isearch-edit-string'."
-  (interactive)
-  (message "This feature is obsolete since 23.1; use `M-s w' instead.")
-  (setq isearch-word t isearch-new-word t))
-
-
 (defun isearch-nonincremental-exit-minibuffer ()
   (interactive)
   (setq isearch-nonincremental t)
@@ -1395,7 +1385,12 @@
   (interactive
    (list
     (cond
-     (isearch-word (concat "\\b" (regexp-quote isearch-string) "\\b"))
+     (isearch-word (concat "\\b" (replace-regexp-in-string
+				  "\\W+" "\\W+"
+				  (replace-regexp-in-string
+				   "^\\W+\\|\\W+$" "" isearch-string)
+				  nil t)
+			   "\\b"))
      (isearch-regexp isearch-string)
      (t (regexp-quote isearch-string)))
     (if current-prefix-arg (prefix-numeric-value current-prefix-arg))))
@@ -2200,12 +2195,14 @@
       (funcall isearch-search-fun-function)
     (cond
      (isearch-word
-      ;; Use lax versions to not fail at the end of the word while the user
-      ;; adds and removes characters in the search string
-      (if (not (eq (length isearch-string)
-		   (length (isearch-string-state (car isearch-cmds)))))
-	  (if isearch-forward 'word-search-forward-lax 'word-search-backward-lax)
-	(if isearch-forward 'word-search-forward 'word-search-backward)))
+      ;; Use lax versions to not fail at the end of the word while
+      ;; the user adds and removes characters in the search string
+      ;; (or when using nonincremental word isearch)
+      (if (or isearch-nonincremental
+	      (eq (length isearch-string)
+		  (length (isearch-string-state (car isearch-cmds)))))
+	  (if isearch-forward 'word-search-forward 'word-search-backward)
+	(if isearch-forward 'word-search-forward-lax 'word-search-backward-lax)))
      (isearch-regexp
       (if isearch-forward 're-search-forward 're-search-backward))
      (t