Function: c-forward-align-clause-throw-if-invalid
c-forward-align-clause-throw-if-invalid is a macro defined in
cc-engine.el.gz.
Signature
(c-forward-align-clause-throw-if-invalid THROW-TAG)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defmacro c-forward-align-clause-throw-if-invalid (throw-tag)
;; If we are at a `c-type-modifier-with-parens-key' keyword, try to go
;; forward over the clause it introduces, and return t. If the clause is
;; ill formed (or absent), move point to START, set RES to nil, and throw
;; nil to the tag THROW-TAG. Otherwise, return nil. The match data are
;; preserved.
;; This macro is intended only for use withing `c-forward-type'.
`(if (save-match-data
(looking-at c-type-modifier-with-parens-key))
(if (and (zerop (c-forward-token-2))
(eq (char-after) ?\()
(c-safe (c-go-list-forward))
(eq (char-before) ?\))
(setq pos (point))
(progn (c-forward-syntactic-ws) t))
t
(setq res nil)
(goto-char start)
(throw ,throw-tag nil))
nil))