2011-03-06 Alan Mackenzie <acm@muc.de>
* progmodes/cc-engine.el (c-guess-basic-syntax): Reindent.
+ (c-guess-basic-syntax): Move CASE 19 to a different place,
+ correctly to process template-args-cont lines.
2011-03-06 Jay Belanger <jay.p.belanger@gmail.com>
- * calc/calc-ext.el (calc-init-extensions):
- Rename calc-logunits-dblevel and calc-logunits-nplevel to
- calc-dblevel and calc-nplevel, respectively.
- Add keybindings for calc-spn, calc-midi and calc-freq. Add
- autoloads for calcFunc-spn, calcFunc-midi, calcFunc-freq,
- calc-spn, calc-midi and calc-freq.
+ * calc/calc-ext.el (calc-init-extensions): Rename
+ calc-logunits-dblevel and calc-logunits-nplevel to calc-dblevel
+ and calc-nplevel, respectively. Add keybindings for calc-spn,
+ calc-midi and calc-freq. Add autoloads for calcFunc-spn,
+ calcFunc-midi, calcFunc-freq, calc-spn, calc-midi and calc-freq.
* calc/calc-units.el (calc-dblevel): Rename from
calc-logunits-dblevel.
(c-most-enclosing-brace paren-state (point))
paren-state))
- ;; CASE 19: line is an expression, not a statement, and is directly
- ;; contained by a template delimiter. Most likely, we are in a
- ;; template arglist within a statement. This case is based on CASE
- ;; 7. At some point in the future, we may wish to create more
- ;; syntactic symbols such as `template-intro',
- ;; `template-cont-nonempty', etc., and distinguish between them as we
- ;; do for `arglist-intro' etc. (2009-12-07).
- ((and c-recognize-<>-arglists
- (setq containing-< (c-up-list-backward indent-point containing-sexp))
- (eq (char-after containing-<) ?\<))
- (setq placeholder (c-point 'boi containing-<))
- (goto-char containing-sexp) ; Most nested Lbrace/Lparen (but not
- ; '<') before indent-point.
- (if (>= (point) placeholder)
- (progn
- (forward-char)
- (skip-chars-forward " \t"))
- (goto-char placeholder))
- (c-add-stmt-syntax 'template-args-cont (list containing-<) t
- (c-most-enclosing-brace c-state-cache (point))
- paren-state))
-
;; CASE 7B: Looking at the opening brace of an
;; in-expression block or brace list. C.f. cases 4, 16A
;; and 17E.
paren-state))
))
+ ;; CASE 19: line is an expression, not a statement, and is directly
+ ;; contained by a template delimiter. Most likely, we are in a
+ ;; template arglist within a statement. This case is based on CASE
+ ;; 7. At some point in the future, we may wish to create more
+ ;; syntactic symbols such as `template-intro',
+ ;; `template-cont-nonempty', etc., and distinguish between them as we
+ ;; do for `arglist-intro' etc. (2009-12-07).
+ ((and c-recognize-<>-arglists
+ (setq containing-< (c-up-list-backward indent-point containing-sexp))
+ (eq (char-after containing-<) ?\<))
+ (setq placeholder (c-point 'boi containing-<))
+ (goto-char containing-sexp) ; Most nested Lbrace/Lparen (but not
+ ; '<') before indent-point.
+ (if (>= (point) placeholder)
+ (progn
+ (forward-char)
+ (skip-chars-forward " \t"))
+ (goto-char placeholder))
+ (c-add-stmt-syntax 'template-args-cont (list containing-<) t
+ (c-most-enclosing-brace c-state-cache (point))
+ paren-state))
+
;; CASE 17: Statement or defun catchall.
(t
(goto-char indent-point)