Function: c-state-push-any-brace-pair
c-state-push-any-brace-pair is a byte-compiled function defined in
cc-engine.el.gz.
Signature
(c-state-push-any-brace-pair BRA+1 MACRO-START-OR-HERE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defsubst c-state-push-any-brace-pair (bra+1 macro-start-or-here)
;; If BRA+1 is nil, do nothing. Otherwise, BRA+1 is the buffer position
;; following a {, and that brace has a (mis-)matching } (or ]), and we
;; "push" "a" brace pair onto `c-state-cache'.
;;
;; Here "push" means overwrite the top element if it's itself a brace-pair,
;; otherwise push it normally.
;;
;; The brace pair we push is normally the one surrounding BRA+1, but if the
;; latter is inside a macro, not being a macro containing
;; MACRO-START-OR-HERE, we scan backwards through the buffer for a non-macro
;; base pair. This latter case is assumed to be rare.
;;
;; Note: POINT is not preserved in this routine.
(if bra+1
(if (or (> bra+1 macro-start-or-here)
(progn (goto-char bra+1)
(not (c-beginning-of-macro))))
(setq c-state-cache
(cons (cons (1- bra+1)
(c-sc-scan-lists bra+1 1 1))
(if (consp (car c-state-cache))
(cdr c-state-cache)
c-state-cache)))
;; N.B. This defsubst codes one method for the simple, normal case,
;; and a more sophisticated, slower way for the general case. Don't
;; eliminate this defsubst - it's a speed optimization.
(c-append-lower-brace-pair-to-state-cache (1- bra+1) (point-max)))))