Function: c-forward-constraint-clause

c-forward-constraint-clause is a byte-compiled function defined in cc-engine.el.gz.

Signature

(c-forward-constraint-clause &optional LIMIT STOP-AT-END)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defun c-forward-constraint-clause (&optional limit stop-at-end)
  ;; Point is at the putative start of a constraint clause.  Move to its end
  ;; (when STOP-AT-END is non-zero) or the token after that (otherwise) and
  ;; return non-nil.  Return nil without moving if we fail to find a
  ;; constraint.
  (let ((here (point))
	final-point)
    (or limit (setq limit (point-max)))
    (if (c-forward-primary-expression limit t)
	(progn
	  (setq final-point (point))
	  (c-forward-syntactic-ws limit)
	  (while
	      (and (looking-at "\\(?:&&\\|||\\)")
		   (<= (match-end 0) limit)
		   (progn (goto-char (match-end 0))
			  (c-forward-syntactic-ws limit)
			  (and (<= (point) limit)))
		   (c-forward-primary-expression limit t)
		   (setq final-point (point))))
	  (goto-char final-point)
	  (or stop-at-end (c-forward-syntactic-ws limit))
	  t)
      (goto-char here)
      nil)))