I believe the following patch fixes the problem.

I haven't signed copyright papers yet, but I have sent a request
for them.  So I guess you can't install this just yet.

*** iswitchb.el	22 Aug 2004 12:58:16 +0200	1.55
--- iswitchb.el	14 Jun 2005 04:24:33 +0200	
***************
*** 889,910 ****
           (do-string         (stringp (car list)))
           name
           ret)
!     (mapcar
!      (lambda (x)
! 
!        (if do-string
! 	   (setq name x)               ;We already have the name
! 	 (setq name (buffer-name x)))
! 
!        (cond
! 	((and (or (and string-format (string-match regexp name))
! 		  (and (null string-format)
! 		       (string-match (regexp-quote regexp) name)))
! 
! 	      (not (iswitchb-ignore-buffername-p name)))
! 	 (setq ret (cons name ret))
!           )))
!      list)
      ret))
  
  (defun iswitchb-ignore-buffername-p (bufname)
--- 889,908 ----
           (do-string         (stringp (car list)))
           name
           ret)
!     (condition-case nil
!         (mapcar
!          (lambda (x)
!            (if do-string
!                (setq name x)               ; We already have the name
!              (setq name (buffer-name x)))
!            (cond
!             ((and (or (and string-format (string-match regexp name))
!                       (and (null string-format)
!                            (string-match (regexp-quote regexp) name)))
!                   (not (iswitchb-ignore-buffername-p name)))
!              (setq ret (cons name ret)))))
!          list)
!         (invalid-regexp nil))
      ret))
  
  (defun iswitchb-ignore-buffername-p (bufname)
***************
*** 1243,1248 ****
--- 1241,1259 ----
         (setq most-is-exact t))
      (substring com most-len)))
  
+ (defun iswitchb-regexp-valid-p (regexp)
+   "Non-nil if REGEXP is syntactically valid."
+   (condition-case nil
+       (progn (string-match regexp "") t)
+     (invalid-regexp nil)))
+ 
+ (defun iswitchb-text-valid-p ()
+   "Non-nil if `iswitchb-text' is syntactically valid.
+ This fails only when `iswitchb-regexp' is non-nil and `iswitchb-text'
+ is an invalid regexp."
+   (or (not iswitchb-regexp)
+       (iswitchb-regexp-valid-p iswitchb-text)))
+ 
  (defun iswitchb-completions (name require-match)
    "Return the string that is displayed after the user's text.
  Modified from `icomplete-completions'."
***************
*** 1296,1304 ****
  			       (car comp))
  	    (setq comp (cdr comp))))))
  
!     (cond ((null comps) (format " %sNo match%s"
! 				open-bracket-determined
! 				close-bracket-determined))
  
  	  ((null (cdr comps))		;one match
  	   (concat (if (and (> (length (car comps))
--- 1307,1317 ----
  			       (car comp))
  	    (setq comp (cdr comp))))))
  
!     (cond ((null comps)
!            (format (if (iswitchb-text-valid-p)
!                        " %sNo match%s" " %sInvalid regexp%s")
!                    open-bracket-determined
!                    close-bracket-determined))
  
  	  ((null (cdr comps))		;one match
  	   (concat (if (and (> (length (car comps))
-- 
Daniel Brockman <[EMAIL PROTECTED]>
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to