changeset 54256:c8bd7417eb31

(isearch-*-char): New arg WANT-BACKSLASH. (isearch-{-char): New function. (isearch-mode-map): Bind { to isearch-{-char.
author Richard M. Stallman <rms@gnu.org>
date Thu, 04 Mar 2004 16:54:08 +0000
parents 5cf652dfce17
children b647c5859635
files lisp/isearch.el
diffstat 1 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/isearch.el	Thu Mar 04 16:52:00 2004 +0000
+++ b/lisp/isearch.el	Thu Mar 04 16:54:08 2004 +0000
@@ -301,6 +301,7 @@
     ;; Nothing special for + because it matches at least once.
     (define-key map "*" 'isearch-*-char)
     (define-key map "?" 'isearch-*-char)
+    (define-key map "{" 'isearch-{-char)
     (define-key map "|" 'isearch-|-char)
 
     ;; Turned off because I find I expect to get the global definition--rms.
@@ -1186,21 +1187,30 @@
   (isearch-update))
 
 
+(defun isearch-{-char ()
+  "Handle \{ specially in regexps."
+  (interactive)
+  (isearch-*-char t))
+
 ;; *, ?, and | chars can make a regexp more liberal.
 ;; They can make a regexp match sooner or make it succeed instead of failing.
 ;; So go back to place last successful search started
 ;; or to the last ^S/^R (barrier), whichever is nearer.
 ;; + needs no special handling because the string must match at least once.
 
-(defun isearch-*-char ()
-  "Handle * and ? specially in regexps."
+(defun isearch-*-char (&optional want-backslash)
+  "Handle * and ? specially in regexps.
+When WANT-BACKSLASH is non-nil, do special handling for \{."
   (interactive)
   (if isearch-regexp
       (let ((idx (length isearch-string)))
 	(while (and (> idx 0)
 		    (eq (aref isearch-string (1- idx)) ?\\))
 	  (setq idx (1- idx)))
-	(when (= (mod (- (length isearch-string) idx) 2) 0)
+	;; * and ? are special when not preceded by \.
+	;; { is special when it is preceded by \.
+	(when (= (mod (- (length isearch-string) idx) 2)
+		 (if want-backslash 1 0))
 	  (setq isearch-adjusted t)
 	  ;; Get the isearch-other-end from before the last search.
 	  ;; We want to start from there,