Function: isearch-no-upper-case-p
isearch-no-upper-case-p is a byte-compiled function defined in
isearch.el.gz.
Signature
(isearch-no-upper-case-p STRING REGEXP-FLAG)
Documentation
Return t if there are no upper case chars in STRING.
If REGEXP-FLAG is non-nil, disregard letters preceded by \ (but not \\)
since they have special meaning in a regexp.
Source Code
;; Defined in /usr/src/emacs/lisp/isearch.el.gz
;; General utilities
(defun isearch-no-upper-case-p (string regexp-flag)
"Return t if there are no upper case chars in STRING.
If REGEXP-FLAG is non-nil, disregard letters preceded by `\\' (but not `\\\\')
since they have special meaning in a regexp."
(let (quote-flag (i 0) (len (length string)) found)
(while (and (not found) (< i len))
(let ((char (aref string i)))
(if (and regexp-flag (eq char ?\\))
(setq quote-flag (not quote-flag))
(if (and (not quote-flag) (not (eq char (downcase char))))
(setq found t))
(setq quote-flag nil)))
(setq i (1+ i)))
(not (or found
;; Even if there's no uppercase char, we want to detect the use
;; of [:upper:] or [:lower:] char-class, which indicates
;; clearly that the user cares about case distinction.
(and regexp-flag (string-match "\\[:\\(upp\\|low\\)er:]" string)
(condition-case err
(progn
(string-match (substring string 0 (match-beginning 0))
"")
nil)
(invalid-regexp
(equal "Unmatched [ or [^" (cadr err)))))))))