]> code.delx.au - gnu-emacs/commitdiff
Distinguish the two meanings of Java's keyword "default". Fixes bug #22358.
authorAlan Mackenzie <acm@muc.de>
Sat, 23 Jan 2016 19:38:49 +0000 (19:38 +0000)
committerAlan Mackenzie <acm@muc.de>
Sat, 23 Jan 2016 19:38:49 +0000 (19:38 +0000)
* lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 14): Check the
context of case labels (including "default") more rigorously.
(c-guess-basic-syntax CASE 15): Consequential amendment.

* lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value.

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

index 8113446e4d33ce24a241a11ac0d25c0c7744c4f3..815bd7216f24bacec44a9f759356e7014a89eece 100644 (file)
@@ -10072,7 +10072,19 @@ comment at the start of cc-engine.el for more info."
                                       paren-state)))
 
        ;; CASE 14: A case or default label
-       ((looking-at c-label-kwds-regexp)
+       ((save-excursion
+         (and (looking-at c-label-kwds-regexp)
+              (or (c-major-mode-is 'idl-mode)
+                  (and
+                   containing-sexp
+                   (goto-char containing-sexp)
+                   (eq (char-after) ?{)
+                   (progn (c-backward-syntactic-ws) t)
+                   (eq (char-before) ?\))
+                   (c-go-list-backward)
+                   (progn (c-backward-syntactic-ws) t)
+                   (c-simple-skip-symbol-backward)
+                   (looking-at c-block-stmt-2-key)))))
        (if containing-sexp
            (progn
              (goto-char containing-sexp)
@@ -10088,6 +10100,7 @@ comment at the start of cc-engine.el for more info."
        ((save-excursion
          (back-to-indentation)
          (and (not (looking-at c-syntactic-ws-start))
+              (not (looking-at c-label-kwds-regexp))
               (c-forward-label)))
        (cond (containing-decl-open
               (setq placeholder (c-add-class-syntax 'inclass
index 48dd99608867bbc8fe24ec3a3517bde3a74f485b..8a1d43c627c8f1d71827d912bba3f18c34049c4e 100644 (file)
@@ -1980,8 +1980,8 @@ will be handled."
         ;; In CORBA CIDL:
         "bindsTo" "delegatesTo" "implements" "proxy" "storedOn")
   ;; Note: "const" is not used in Java, but it's still a reserved keyword.
-  java '("abstract" "const" "final" "native" "private" "protected" "public"
-        "static" "strictfp" "synchronized" "transient" "volatile")
+  java '("abstract" "const" "default" "final" "native" "private" "protected"
+        "public" "static" "strictfp" "synchronized" "transient" "volatile")
   pike '("final" "inline" "local" "nomask" "optional" "private" "protected"
         "public" "static" "variant"))