]> git.eshelyaron.com Git - emacs.git/commitdiff
(c-beginning-of-member-init-list):
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Oct 2001 16:12:07 +0000 (16:12 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 24 Oct 2001 16:12:07 +0000 (16:12 +0000)
Better handling of C++ template args to avoid confusion with `<'
and `>' used as operators in member init expressions.
From Martin Stjernholm  <bug-cc-mode@gnu.org>.

lisp/ChangeLog
lisp/progmodes/cc-engine.el

index b1655e2a1e75927f6afe5270e6c3f48dd23fddf3..6dc219f9edc5dcacc963d56346ab57c1e0a0d32e 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+       * progmodes/cc-engine.el (c-beginning-of-member-init-list):
+       Better handling of C++ template args to avoid confusion with `<'
+       and `>' used as operators in member init expressions.
+
 2001-10-24  Gerd Moellmann  <gerd@gnu.org>
 
        * replace.el (perform-replace): Move START and END parameters
@@ -6,8 +12,7 @@
        * progmodes/ebrowse.el, progmodes/etags.el: Adapt to change in
        perform-replace.
 
-       * international/fontset.el (x-must-resolve-font-name): New
-       function.
+       * international/fontset.el (x-must-resolve-font-name): New function.
        (x-complement-fontset-spec): Use it.
 
 2001-10-23  Gerd Moellmann  <gerd@gnu.org>
@@ -26,8 +31,8 @@
 
 2001-10-22  Gerd Moellmann  <gerd@gnu.org>
 
-       * progmodes/compile.el (compilation-set-window-height): Select
-       old window only if it's still live.
+       * progmodes/compile.el (compilation-set-window-height):
+       Select old window only if it's still live.
 
 2001-10-22  Eli Zaretskii  <eliz@is.elta.co.il>
 
@@ -42,8 +47,7 @@
        * tooltip.el (tooltip-x-offset, tooltip-y-offset): Mention in the
        doc string the effect of `left' and `top' parameters in
        tooltip-frame-parameters, the default values, and the units.
-       (tooltip-frame-parameters): Mention `top' and `left' in the doc
-       string.
+       (tooltip-frame-parameters): Mention `top' and `left' in the doc string.
        (tooltip-show): Mention in the doc string the `top' and `left'
        parameters in tooltip-frame-parameters, and x-max-tooltip-size.
        (tooltip-set-param): Doc fix.
@@ -52,7 +56,7 @@
 
        * saveplace.el (save-place): Require `saveplace'.
 
-       * progmodes/cwarn.el (cwarn-font-lock-feature-keywords-alist): 
+       * progmodes/cwarn.el (cwarn-font-lock-feature-keywords-alist):
        Use `sexp' for :value-type instead of `face'.
 
 2001-10-20  Gerd Moellmann  <gerd@gnu.org>
@@ -62,8 +66,7 @@
 2001-10-19  Eli Zaretskii  <eliz@is.elta.co.il>
 
        * files.el (auto-mode-alist): Associate .indent.pro with
-       Fundamental mode.  Suggested by Samuel Padgett
-       <spadgett1@nc.rr.com>.
+       Fundamental mode.  Suggested by Samuel Padgett <spadgett1@nc.rr.com>.
 
 2001-10-18  Eli Zaretskii  <eliz@is.elta.co.il>
 
index f76e1e38912730d6ad8f8ea370a8adf588e8acc4..a30798d4b0f0e991a8759ffa00d9c1af30fab8cb 100644 (file)
@@ -1028,31 +1028,30 @@ brace."
   (if (eq (char-after) ?,)
       (forward-char 1)
     (c-backward-syntactic-ws limit))
-  (c-with-syntax-table (if (c-major-mode-is 'c++-mode)
-                          c++-template-syntax-table
-                        (syntax-table))
-    (while (and (< limit (point))
-               (eq (char-before) ?,))
-      ;; this will catch member inits with multiple
-      ;; line arglists
-      (forward-char -1)
-      (c-backward-syntactic-ws)
-      (if (eq (char-before) ?\))
-         (c-backward-sexp 2)
+  (while (and (< limit (point))
+             (eq (char-before) ?,))
+    ;; this will catch member inits with multiple
+    ;; line arglists
+    (forward-char -1)
+    (c-backward-syntactic-ws limit)
+    (if (eq (char-before) ?\))
        (c-backward-sexp 1))
-      ;; Skip over any template arg to the class.
-      (if (eq (char-after) ?<)
-         (c-backward-sexp 1))
-      ;; Skip backwards over a fully::qualified::name.
-      (c-backward-syntactic-ws limit)
-      (while (and (eq (char-before) ?:)
-                 (save-excursion
-                   (forward-char -1)
-                   (eq (char-before) ?:)))
-       (backward-char 2)
-       (c-backward-sexp 1))
-      ;; now continue checking
-      (c-backward-syntactic-ws limit)))
+    (c-backward-syntactic-ws limit)
+    ;; Skip over any template arg to the class.
+    (if (eq (char-before) ?>)
+       (c-with-syntax-table c++-template-syntax-table
+         (c-backward-sexp 1)))
+    (c-backward-sexp 1)
+    (c-backward-syntactic-ws limit)
+    ;; Skip backwards over a fully::qualified::name.
+    (while (and (eq (char-before) ?:)
+               (save-excursion
+                 (forward-char -1)
+                 (eq (char-before) ?:)))
+      (backward-char 2)
+      (c-backward-sexp 1))
+    ;; now continue checking
+    (c-backward-syntactic-ws limit))
   (and (< limit (point))
        (eq (char-before) ?:)))