From: Stefan Monnier Date: Wed, 24 Oct 2001 16:12:07 +0000 (+0000) Subject: (c-beginning-of-member-init-list): X-Git-Tag: emacs-21.2~466 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bdb410409a67c596f32ab124286ab48e7da7d0b9;p=emacs.git (c-beginning-of-member-init-list): Better handling of C++ template args to avoid confusion with `<' and `>' used as operators in member init expressions. From Martin Stjernholm . --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b1655e2a1e7..6dc219f9edc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2001-10-24 Martin Stjernholm + + * 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 * 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 @@ -26,8 +31,8 @@ 2001-10-22 Gerd Moellmann - * 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 @@ -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 @@ -62,8 +66,7 @@ 2001-10-19 Eli Zaretskii * files.el (auto-mode-alist): Associate .indent.pro with - Fundamental mode. Suggested by Samuel Padgett - . + Fundamental mode. Suggested by Samuel Padgett . 2001-10-18 Eli Zaretskii diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index f76e1e38912..a30798d4b0f 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -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) ?:)))