]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle template delimiters in C++ member init constructs.
authorAlan Mackenzie <acm@muc.de>
Sat, 27 Aug 2016 15:45:17 +0000 (15:45 +0000)
committerAlan Mackenzie <acm@muc.de>
Sat, 27 Aug 2016 15:45:17 +0000 (15:45 +0000)
* lisp/progmodes/cc-engine.el (c-back-over-list-of-member-inits): Add
handling for "<....>"s.

lisp/progmodes/cc-engine.el

index 940d7a4cc3e915eed60fe4fcfdc722fc69356893..ecee57e40160b3a4749c51411dafa09049cf509e 100644 (file)
@@ -7410,7 +7410,8 @@ comment at the start of cc-engine.el for more info."
 (defmacro c-back-over-list-of-member-inits ()
   ;; Go back over a list of elements, each looking like:
   ;; <symbol> (<expression>) ,
-  ;; or <symbol> {<expression>} ,
+  ;; or <symbol> {<expression>} , (with possibly a <....> expressions
+  ;; following the <symbol>).
   ;; when we are putatively immediately after a comma.  Stop when we don't see
   ;; a comma.  If either of <symbol> or bracketed <expression> is missing,
   ;; throw nil to 'level.  If the terminating } or ) is unmatched, throw nil
@@ -7423,6 +7424,11 @@ comment at the start of cc-engine.el for more info."
      (when (not (c-go-list-backward))
        (throw 'done nil))
      (c-backward-syntactic-ws)
+     (while (eq (char-before) ?>)
+       (when (not (c-backward-<>-arglist nil))
+        (throw 'done nil))
+       (c-backward-syntactic-ws))
+     (c-backward-syntactic-ws)
      (when (not (c-back-over-compound-identifier))
        (throw 'level nil))
      (c-backward-syntactic-ws)))