4 new commits in cc-mode:
https://bitbucket.org/xemacs/cc-mode/commits/a8f0174ae23f/
Changeset: a8f0174ae23f
User: acm
Date: 2013-09-28 18:39:05
Summary: Fix indentation/fontification of Java enum with "implements".
cc-langs.el (c-postfix-decl-spec-key): New variable, a regexp which
matches "implements", etc., in Java.
cc-engine.el (c-inside-bracelist-p): Check for extra specifier clauses
coming after "enum".
cc-fonts.el (c-font-lock-declarations, c-font-lock-enum-tail): Check for
extra specifier clauses coming after "enum".
enum-7.{java,res,face}: New test case.
Affected #: 3 files
diff -r 394839a483bc044b94a970df3f4657b35282cac6 -r
a8f0174ae23f3cf4c0cbcf6e4c0d0b5831bc04ce cc-engine.el
--- a/cc-engine.el
+++ b/cc-engine.el
@@ -4781,7 +4781,6 @@
(if (> cfd-re-match-end (point))
(goto-char cfd-re-match-end))
-;;;; NEW STOUGH, 2013-09-21
;; Each time round, the next `while' moves forward over a pseudo match
;; of `c-decl-prefix-or-start-re' which is either inside a literal, or
;; is a ":" not preceded by "public", etc..
`cfd-re-match' and
@@ -4821,7 +4820,6 @@
;; Found a ":" which isn't part of "public:", etc.
t)
(t nil)))) ;; Found a real match. Exit the pseudo-match loop.
-;;;; END OF NEW STOUGH
;; If our match was at the decl start, we have to back up over the
;; preceding syntactic ws to set `cfd-match-pos' and to catch
@@ -8525,15 +8523,19 @@
(c-safe
(save-excursion
(goto-char containing-sexp)
- (c-forward-sexp -1)
- (let (bracepos)
- (if (and (or (looking-at c-brace-list-key)
- (progn (c-forward-sexp -1)
- (looking-at c-brace-list-key)))
- (setq bracepos (c-down-list-forward (point)))
- (not (c-crosses-statement-barrier-p (point)
- (- bracepos 2))))
- (point)))))
+ (let (before-identifier)
+ (while
+ (progn
+ (c-forward-sexp -1)
+ (cond
+ ((c-on-identifier) (setq before-identifier t))
+ ((and before-identifier
+ (looking-at c-postfix-decl-spec-key))
+ (setq before-identifier nil)
+ t)
+ ((looking-at c-brace-list-key) nil)
+ (t nil))))
+ (looking-at c-brace-list-key))))
;; this will pick up array/aggregate init lists, even if they are nested.
(save-excursion
(let ((class-key
diff -r 394839a483bc044b94a970df3f4657b35282cac6 -r
a8f0174ae23f3cf4c0cbcf6e4c0d0b5831bc04ce cc-fonts.el
--- a/cc-fonts.el
+++ b/cc-fonts.el
@@ -1438,13 +1438,22 @@
(let ((paren-state (c-parse-state)))
(and
(numberp (car paren-state))
- (save-excursion
- (goto-char (car paren-state))
- (c-backward-token-2)
- (or (looking-at c-brace-list-key)
- (progn
- (c-backward-token-2)
- (looking-at c-brace-list-key)))))))
+ (c-safe
+ (save-excursion
+ (goto-char (car paren-state))
+ (let (before-identifier)
+ (while
+ (progn
+ (c-forward-sexp -1)
+ (cond
+ ((c-on-identifier) (setq before-identifier t))
+ ((and before-identifier
+ (looking-at c-postfix-decl-spec-key))
+ (setq before-identifier nil)
+ t)
+ ((looking-at c-brace-list-key) nil) ; "enum"
+ (t nil))))
+ (looking-at c-brace-list-key)))))))
(c-forward-token-2)
nil)
@@ -1533,14 +1542,22 @@
(when (and
encl-pos
(eq (char-after encl-pos) ?\{)
- (save-excursion
- (goto-char encl-pos)
- (c-backward-syntactic-ws)
- (c-simple-skip-symbol-backward)
- (or (looking-at c-brace-list-key) ; "enum"
- (progn (c-backward-syntactic-ws)
- (c-simple-skip-symbol-backward)
- (looking-at c-brace-list-key)))))
+ (c-safe
+ (save-excursion
+ (goto-char encl-pos)
+ (let (before-identifier)
+ (while
+ (progn
+ (c-forward-sexp -1)
+ (cond
+ ((c-on-identifier) (setq before-identifier t))
+ ((and before-identifier
+ (looking-at c-postfix-decl-spec-key))
+ (setq before-identifier nil)
+ t)
+ ((looking-at c-brace-list-key) nil) ; "enum"
+ (t nil))))
+ (looking-at c-brace-list-key)))))
(c-syntactic-skip-backward "^{," nil t)
(c-put-char-property (1- (point)) 'c-type 'c-decl-id-start)
diff -r 394839a483bc044b94a970df3f4657b35282cac6 -r
a8f0174ae23f3cf4c0cbcf6e4c0d0b5831bc04ce cc-langs.el
--- a/cc-langs.el
+++ b/cc-langs.el
@@ -2035,6 +2035,12 @@
;; In CORBA PSDL:
"as" "const" "implements" "of"
"ref"))
+(c-lang-defconst c-postfix-decl-spec-key
+ ;; Regexp matching the keywords in `c-postfix-decl-spec-kwds'.
+ t (c-make-keywords-re t (c-lang-const c-postfix-decl-spec-kwds)))
+(c-lang-defvar c-postfix-decl-spec-key
+ (c-lang-const c-postfix-decl-spec-key))
+
(c-lang-defconst c-nonsymbol-sexp-kwds
"Keywords that may be followed by a nonsymbol sexp before whatever
construct it's part of continues."
https://bitbucket.org/xemacs/cc-mode/commits/dd02d99a9b3f/
Changeset: dd02d99a9b3f
User: acm
Date: 2013-10-13 21:20:15
Summary: Fix indentation/fontification of Java enum with
"implements"/generic.
cc-engine.el (c-backward-over-enum-header): Extracted from the three
other places and enhanced to handle generics.
(c-inside-bracelist-p): Uses new function above.
cc-fonts.el (c-font-lock-declarations): Uses new function above.
(c-font-lock-enum-tail): Uses new function above.
Affected #: 2 files
diff -r a8f0174ae23f3cf4c0cbcf6e4c0d0b5831bc04ce -r
dd02d99a9b3f7b730ff3f9f180d28bbf2b917e82 cc-engine.el
--- a/cc-engine.el
+++ b/cc-engine.el
@@ -8506,6 +8506,32 @@
(not (looking-at "=")))))
b-pos)))
+(defun c-backward-over-enum-header ()
+ ;; We're at a "{". Move back to the enum-like keyword that starts this
+ ;; declaration and return t, otherwise don't move and return nil.
+ (let ((here (point))
+ up-sexp-pos before-identifier)
+ (while
+ (and
+ (eq (c-backward-token-2) 0)
+ (or (not (looking-at "\\s)"))
+ (c-go-up-list-backward))
+ (cond
+ ((and (looking-at c-symbol-key) (c-on-identifier))
+ (setq before-identifier t))
+ ((and before-identifier
+ (looking-at c-postfix-decl-spec-key))
+ (setq before-identifier nil)
+ t)
+ ((looking-at c-brace-list-key) nil)
+ ((and c-recognize-<>-arglists
+ (eq (char-after) ?<)
+ (looking-at "\\s("))
+ t)
+ (t nil))))
+ (or (looking-at c-brace-list-key)
+ (progn (goto-char here) nil))))
+
(defun c-inside-bracelist-p (containing-sexp paren-state)
;; return the buffer position of the beginning of the brace list
;; statement if we're inside a brace list, otherwise return nil.
@@ -8520,22 +8546,9 @@
;; This function might do hidden buffer changes.
(or
;; This will pick up brace list declarations.
- (c-safe
- (save-excursion
- (goto-char containing-sexp)
- (let (before-identifier)
- (while
- (progn
- (c-forward-sexp -1)
- (cond
- ((c-on-identifier) (setq before-identifier t))
- ((and before-identifier
- (looking-at c-postfix-decl-spec-key))
- (setq before-identifier nil)
- t)
- ((looking-at c-brace-list-key) nil)
- (t nil))))
- (looking-at c-brace-list-key))))
+ (save-excursion
+ (goto-char containing-sexp)
+ (c-backward-over-enum-header))
;; this will pick up array/aggregate init lists, even if they are nested.
(save-excursion
(let ((class-key
diff -r a8f0174ae23f3cf4c0cbcf6e4c0d0b5831bc04ce -r
dd02d99a9b3f7b730ff3f9f180d28bbf2b917e82 cc-fonts.el
--- a/cc-fonts.el
+++ b/cc-fonts.el
@@ -1438,22 +1438,9 @@
(let ((paren-state (c-parse-state)))
(and
(numberp (car paren-state))
- (c-safe
- (save-excursion
- (goto-char (car paren-state))
- (let (before-identifier)
- (while
- (progn
- (c-forward-sexp -1)
- (cond
- ((c-on-identifier) (setq before-identifier t))
- ((and before-identifier
- (looking-at c-postfix-decl-spec-key))
- (setq before-identifier nil)
- t)
- ((looking-at c-brace-list-key) nil) ; "enum"
- (t nil))))
- (looking-at c-brace-list-key)))))))
+ (save-excursion
+ (goto-char (car paren-state))
+ (c-backward-over-enum-header)))))
(c-forward-token-2)
nil)
@@ -1542,22 +1529,9 @@
(when (and
encl-pos
(eq (char-after encl-pos) ?\{)
- (c-safe
- (save-excursion
- (goto-char encl-pos)
- (let (before-identifier)
- (while
- (progn
- (c-forward-sexp -1)
- (cond
- ((c-on-identifier) (setq before-identifier t))
- ((and before-identifier
- (looking-at c-postfix-decl-spec-key))
- (setq before-identifier nil)
- t)
- ((looking-at c-brace-list-key) nil) ; "enum"
- (t nil))))
- (looking-at c-brace-list-key)))))
+ (save-excursion
+ (goto-char encl-pos)
+ (c-backward-over-enum-header)))
(c-syntactic-skip-backward "^{," nil t)
(c-put-char-property (1- (point)) 'c-type 'c-decl-id-start)
https://bitbucket.org/xemacs/cc-mode/commits/55f930a5e117/
Changeset: 55f930a5e117
User: acm
Date: 2013-10-13 21:34:03
Summary: Merge.
Affected #: 3 files
diff -r dd02d99a9b3f7b730ff3f9f180d28bbf2b917e82 -r
55f930a5e1176d964842390e3536b38eda9e0684 .hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -102,3 +102,4 @@
30193171ee9f9ed46e44502a7b15f7064016ee5b cc-mode-1_68
d3c0d95369e48b69f82b52b69f2b6d77bf957c65 cc-mode-1_69
e4b17748254e2efd679b7f2bcc92c6f7e0204ae1 cc-mode-1_70
+f7e9fa89b5fa9d21a9a5be5eef0214d2e0566b2a cc-mode-1_71
diff -r dd02d99a9b3f7b730ff3f9f180d28bbf2b917e82 -r
55f930a5e1176d964842390e3536b38eda9e0684 ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-09-22 Norbert Koch <viteno(a)xemacs.org>
+
+ * Makefile (VERSION): XEmacs package 1.71 released.
+
2013-09-19 Norbert Koch <viteno(a)xemacs.org>
* Makefile (VERSION): XEmacs package 1.70 released.
diff -r dd02d99a9b3f7b730ff3f9f180d28bbf2b917e82 -r
55f930a5e1176d964842390e3536b38eda9e0684 Makefile
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-VERSION = 1.70
+VERSION = 1.71
AUTHOR_VERSION = 5.32.2
MAINTAINER = Alan Mackenzie <bug-cc-mode(a)gnu.org>
PACKAGE = cc-mode
https://bitbucket.org/xemacs/cc-mode/commits/831c2054d7e6/
Changeset: 831c2054d7e6
User: acm
Date: 2013-10-13 21:35:21
Summary: Update AUTHOR_VERSION to 5.32.5.
Affected #: 1 file
diff -r 55f930a5e1176d964842390e3536b38eda9e0684 -r
831c2054d7e632ee7943a3d2b45061a9adc1d3e2 Makefile
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,7 @@
# Boston, MA 02111-1307, USA.
VERSION = 1.71
-AUTHOR_VERSION = 5.32.2
+AUTHOR_VERSION = 5.32.5
MAINTAINER = Alan Mackenzie <bug-cc-mode(a)gnu.org>
PACKAGE = cc-mode
PKG_TYPE = regular
Repository URL:
https://bitbucket.org/xemacs/cc-mode/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches