Function: rng-intern-group-shortcut
rng-intern-group-shortcut is a byte-compiled function defined in
rng-match.el.gz.
Signature
(rng-intern-group-shortcut IPATTERNS)
Documentation
Try to shortcut interning a group list.
If successful, return the interned pattern. Otherwise return nil.
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-match.el.gz
(defun rng-intern-group-shortcut (ipatterns)
"Try to shortcut interning a group list.
If successful, return the interned pattern. Otherwise return nil."
(while (and ipatterns
(eq (car ipatterns) rng-empty-ipattern))
(setq ipatterns (cdr ipatterns)))
(if ipatterns
(let ((ret (car ipatterns)))
(if (eq ret rng-not-allowed-ipattern)
rng-not-allowed-ipattern
(setq ipatterns (cdr ipatterns))
(while (and ipatterns ret)
(let ((tem (car ipatterns)))
(cond ((eq tem rng-not-allowed-ipattern)
(setq ret tem)
(setq ipatterns nil))
((eq tem rng-empty-ipattern)
(setq ipatterns (cdr ipatterns)))
(t
;; Stop here rather than continuing
;; looking for not-allowed patterns.
;; We do a complete scan elsewhere.
(setq ret nil)))))
ret))
rng-empty-ipattern))