*** 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))