From: Alan Mackenzie Date: Sun, 25 Aug 2013 13:52:14 +0000 (+0000) Subject: Parse C++ inher-intro when there's a template split over 2 lines. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~130 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=869455d4321f936935fd74753d0fa2c17ec7870e;p=emacs.git Parse C++ inher-intro when there's a template split over 2 lines. * progmodes/cc-engine.el (c-guess-basic-syntax CASE 5C): Code more rigorously the search for "class" etc. followed by ":". * progmodes/cc-langs.el (c-opt-<>-sexp-key): Make the value for random languages a regexp which never matches rather than nil. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4d4227a2a0f..cbeea784579 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,13 @@ 2013-08-25 Alan Mackenzie + Parse C++ inher-intro when there's a template split over 2 lines. + + * progmodes/cc-engine.el (c-guess-basic-syntax CASE 5C): Code more + rigorously the search for "class" etc. followed by ":". + + * progmodes/cc-langs.el (c-opt-<>-sexp-key): Make the value for + random languages a regexp which never matches rather than nil. + Handle "/"s more accurately in test for virtual semicolons (AWK Mode). * progmodes/cc-awk.el (c-awk-one-line-possibly-open-string-re) diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 2b9b6548e6f..3d6398014db 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -9799,12 +9799,12 @@ comment at the start of cc-engine.el for more info." (not (eq (char-after) ?:)) ))) (save-excursion - (c-backward-syntactic-ws lim) - (if (eq char-before-ip ?:) - (progn - (forward-char -1) - (c-backward-syntactic-ws lim))) - (back-to-indentation) + (c-beginning-of-statement-1 lim) + (when (looking-at c-opt-<>-sexp-key) + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (c-forward-<>-arglist nil) + (c-forward-syntactic-ws)) (looking-at c-class-key))) ;; for Java (and (c-major-mode-is 'java-mode) diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 2c0a1317b04..0116e9ec3dd 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -2163,8 +2163,7 @@ assumed to be set if this isn't nil." (c-lang-defconst c-opt-<>-sexp-key ;; Adorned regexp matching keywords that can be followed by an angle ;; bracket sexp. Always set when `c-recognize-<>-arglists' is. - t (if (c-lang-const c-recognize-<>-arglists) - (c-make-keywords-re t (c-lang-const c-<>-sexp-kwds)))) + t (c-make-keywords-re t (c-lang-const c-<>-sexp-kwds))) (c-lang-defvar c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key)) (c-lang-defconst c-brace-id-list-kwds