Function: c-forward-id-comma-list
c-forward-id-comma-list is a macro defined in cc-engine.el.gz.
Signature
(c-forward-id-comma-list TYPE UPDATE-SAFE-POS &optional STOP-AT-END)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defmacro c-forward-id-comma-list (type update-safe-pos &optional stop-at-end)
;; Used internally in `c-forward-keyword-clause' to move forward
;; over a comma separated list of types or names using
;; `c-forward-keyword-prefixed-id'. Point should start at the first token
;; after the already scanned type/name, or (if STOP-AT-END is non-nil)
;; immediately after that type/name. Point is left either before or
;; after the whitespace following the last type/name in the list, depending
;; on whether STOP-AT-END is non-nil or nil. The return value is without
;; significance.
;;
;; Note that all three parameters are evaluated at compile time, not run
;; time, so they must be constants.
;;
;; This macro might do hidden buffer changes.
(declare (debug t))
`(let ((pos (point)))
(while (and (progn
,(when update-safe-pos
`(setq safe-pos (point)))
(setq pos (point))
(c-forward-syntactic-ws)
(eq (char-after) ?,))
(progn
(forward-char)
(setq pos (point))
(c-forward-syntactic-ws)
(c-forward-keyword-prefixed-id ,type t))))
(goto-char pos)
,(unless stop-at-end
`(c-forward-syntactic-ws))))