Function: c-lineup-argcont-1
c-lineup-argcont-1 is a byte-compiled function defined in
cc-align.el.gz.
Signature
(c-lineup-argcont-1 ELEM)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-align.el.gz
(defun c-lineup-argcont-1 (elem)
;; Move to the start of the current arg and return non-nil, otherwise
;; return nil.
(beginning-of-line)
(when (eq (car elem) 'arglist-cont-nonempty)
;; Our argument list might not be the innermost one. If it
;; isn't, go back to the first position in it. We do this by
;; stepping back over open parens until we get to the open paren
;; of our argument list.
(let ((open-paren (c-langelem-2nd-pos c-syntactic-element))
(paren-state (c-parse-state)))
(while (not (eq (car paren-state) open-paren))
(unless (consp (car paren-state)) ;; ignore matched braces
(goto-char (car paren-state)))
(setq paren-state (cdr paren-state)))))
(let ((start (point)) c)
(when (bolp)
;; Previous line ending in a comma means we're the start of an
;; argument. This should quickly catch most cases not for us.
;; This case is only applicable if we're the innermost arglist.
(c-backward-syntactic-ws)
(setq c (char-before)))
(unless (eq c ?,)
;; In a gcc asm, ":" on the previous line means the start of an
;; argument. And lines starting with ":" are not for us, don't
;; want them to indent to the preceding operand.
(let ((gcc-asm (save-excursion
(goto-char start)
(c-in-gcc-asm-p))))
(unless (and gcc-asm
(or (eq c ?:)
(save-excursion
(goto-char start)
(looking-at "[ \t]*:"))))
(c-lineup-argcont-scan (if gcc-asm ?:))
t)))))