Function: c-whack-state-after
c-whack-state-after is a byte-compiled function defined in
cc-engine.el.gz.
Signature
(c-whack-state-after BUFPOS PAREN-STATE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defun c-whack-state-after (bufpos paren-state)
;; Whack off any state information from PAREN-STATE which lies at or
;; after BUFPOS. Not destructive on PAREN-STATE.
(catch 'done
(while paren-state
(let ((car (car paren-state)))
(if (consp car)
;; just check the car, because in a balanced brace
;; expression, it must be impossible for the corresponding
;; close brace to be before point, but the open brace to
;; be after.
(if (<= bufpos (car car))
nil ; whack it off
(if (< bufpos (cdr car))
;; its possible that the open brace is before
;; bufpos, but the close brace is after. In that
;; case, convert this to a non-cons element. The
;; rest of the state is before bufpos, so we're
;; done.
(throw 'done (cons (car car) (cdr paren-state)))
;; we know that both the open and close braces are
;; before bufpos, so we also know that everything else
;; on state is before bufpos.
(throw 'done paren-state)))
(if (<= bufpos car)
nil ; whack it off
;; it's before bufpos, so everything else should too.
(throw 'done paren-state)))
(setq paren-state (cdr paren-state)))
nil)))