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))))