;; otherwise, we could be looking at a hanging member init
;; colon
(goto-char checkpoint)
- (while (eq (char-before) ?,)
- ;; this will catch member inits with multiple
- ;; line arglists
- (forward-char -1)
- (c-backward-syntactic-ws (c-point 'bol))
- (if (eq (char-before) ?\))
- (c-backward-sexp 2)
- (c-backward-sexp 1))
+ (while (and
+ (eq (char-before) ?,)
+ ;; this will catch member inits with multiple
+ ;; line arglists
+ (progn
+ (forward-char -1)
+ (c-backward-syntactic-ws (c-point 'bol))
+ (c-safe (c-backward-sexp 1) t))
+ (or (not (looking-at "\\s\("))
+ (c-safe (c-backward-sexp 1) t)))
(c-backward-syntactic-ws lim))
(if (and (eq (char-before) ?:)
(progn