GNU bug report logs -
#36801
CC Mode 5.34 (C/*l); Weird fontification in brackets in C++ Mode
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36801 in the body.
You can then email your comments to 36801 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-cc-mode <at> gnu.org
:
bug#36801
; Package
cc-mode
.
(Wed, 24 Jul 2019 19:53:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Richard Copley <rcopley <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-cc-mode <at> gnu.org
.
(Wed, 24 Jul 2019 19:53:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Package: cc-mode
With these buffer contents:
order[x];
origin[y];
counterpane[z];
... "x" and "y" are highlighted as types [EDIT: keywords],
and "z" is not.
Reproduced below is the story so far, which comes after a discussion
of unrelated matters at bug#36397.
On Tue, 23 Jul 2019 at 11:40, Alan Mackenzie <acm <at> muc.de> wrote:
Hello again, Richard.
On Mon, Jul 22, 2019 at 20:47:22 +0100, Richard Copley wrote:
[ .... ]
> 3. (This one's reproducible and 'stable' -- it's dependent only
> on the current buffer contents, and not on the path that got us
> there.) With these buffer contents:
> order[x];
> origin[y];
> counterpane[z];
> ... "x" and "y" are highlighted as types, and "z" is not
> (expected: none of the three subscripts are
> highlighted). There's apparently something special about the
> identifiers "order" and "origin".
OK, I've tracked this one down to a regexp not testing for end of
word.
I'm pretty sure the following patch fixes it, but would you please
do the usual with it anyway. As this changes a Lisp macro, the
entire CC Mode needs to be rebuilt after patching.
Thanks!
Package: cc-mode
Emacs : GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32)
of 2019-07-23
Package: CC Mode 5.34 (C/*l)
Buffer Style: gnu
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes
gen-string-delim gen-comment-delim syntax-properties 1-bit)
current state:
==============
(setq
c-basic-offset 2
c-comment-only-line-offset '(0 . 0)
c-indent-comment-alist '((anchored-comment column . 0) (end-block space .
1)
(cpp-end-block space . 2))
c-indent-comments-syntactically-p nil
c-block-comment-prefix ""
c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+")
(other . "//+\\|\\**"))
c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc)
(c-mode . gtkdoc) (c++-mode . gtkdoc))
c-cleanup-list '(scope-operator)
c-hanging-braces-alist '((substatement-open before after)
(arglist-cont-nonempty))
c-hanging-colons-alist nil
c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
c-backslash-column 48
c-backslash-max-column 72
c-special-indent-hook '(c-gnu-impose-minimum)
c-label-minimum-indentation 1
c-offsets-alist '((inexpr-class . +)
(inexpr-statement . +)
(lambda-intro-cont . +)
(inlambda . 0)
(template-args-cont c-lineup-template-args +)
(incomposition . +)
(inmodule . +)
(innamespace . +)
(inextern-lang . +)
(composition-close . 0)
(module-close . 0)
(namespace-close . 0)
(extern-lang-close . 0)
(composition-open . 0)
(module-open . 0)
(namespace-open . 0)
(extern-lang-open . 0)
(objc-method-call-cont
c-lineup-ObjC-method-call-colons
c-lineup-ObjC-method-call
+
)
(objc-method-args-cont . c-lineup-ObjC-method-args)
(objc-method-intro . [0])
(friend . 0)
(cpp-define-intro c-lineup-cpp-define +)
(cpp-macro-cont . +)
(cpp-macro . [0])
(inclass . +)
(stream-op . c-lineup-streamop)
(arglist-cont-nonempty
c-lineup-gcc-asm-reg
c-lineup-arglist
)
(arglist-cont c-lineup-gcc-asm-reg 0)
(comment-intro
c-lineup-knr-region-comment
c-lineup-comment
)
(catch-clause . 0)
(else-clause . 0)
(do-while-closure . 0)
(access-label . -)
(case-label . 0)
(substatement . +)
(statement-case-intro . +)
(statement . 0)
(brace-entry-open . 0)
(brace-list-entry . 0)
(brace-list-close . 0)
(block-close . 0)
(block-open . 0)
(inher-cont . c-lineup-multi-inher)
(inher-intro . +)
(member-init-cont . c-lineup-multi-inher)
(member-init-intro . +)
(annotation-var-cont . +)
(annotation-top-cont . 0)
(topmost-intro . 0)
(knr-argdecl . 0)
(func-decl-cont . +)
(inline-close . 0)
(class-close . 0)
(class-open . 0)
(defun-block-intro . +)
(defun-close . 0)
(defun-open . 0)
(c . c-lineup-C-comments)
(string . c-lineup-dont-change)
(topmost-intro-cont
first
c-lineup-topmost-intro-cont
c-lineup-gnu-DEFUN-intro-cont
)
(brace-list-intro
first
c-lineup-2nd-brace-entry-in-arglist
c-lineup-class-decl-init-+
+
)
(brace-list-open . +)
(inline-open . 0)
(arglist-close . c-lineup-arglist)
(arglist-intro . c-lineup-arglist-intro-after-paren)
(statement-cont . +)
(statement-case-open . +)
(label . 0)
(substatement-label . 0)
(substatement-open . +)
(knr-argdecl-intro . 5)
(statement-block-intro . +)
)
c-buffer-is-cc-mode 'c-mode
c-tab-always-indent t
c-syntactic-indentation t
c-syntactic-indentation-in-macros t
c-ignore-auto-fill '(string cpp code)
c-auto-align-backslashes t
c-backspace-function 'backward-delete-char-untabify
c-delete-function 'delete-char
c-electric-pound-behavior nil
c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
c-enable-xemacs-performance-kludge-p nil
c-old-style-variable-behavior nil
defun-prompt-regexp nil
tab-width 8
comment-column 32
parse-sexp-ignore-comments t
parse-sexp-lookup-properties t
auto-fill-function nil
comment-multi-line t
comment-start-skip "\\(//+\\|/\\*+\\)\\s *"
fill-prefix nil
fill-column 70
paragraph-start "[ ]*\\(//+\\|\\**\\)[ ]*$\\|^\f"
adaptive-fill-mode t
adaptive-fill-regexp "[ ]*\\(//+\\|\\**\\)[ ]*\\([ ]*\\([-–!|#%;>*·•‣⁃◦]+[
]*\\)*\\)"
)
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#36801
; Package
cc-mode
.
(Thu, 25 Jul 2019 10:37:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 36801 <at> debbugs.gnu.org (full text, mbox):
Hello, Richard.
Thanks for the bug report.
On Wed, Jul 24, 2019 at 20:51:47 +0100, Richard Copley wrote:
> Package: cc-mode
> With these buffer contents:
> order[x];
> origin[y];
> counterpane[z];
> ... "x" and "y" are highlighted as types [EDIT: keywords],
> and "z" is not.
> Reproduced below is the story so far, which comes after a discussion
> of unrelated matters at bug#36397.
> On Tue, 23 Jul 2019 at 11:40, Alan Mackenzie <acm <at> muc.de> wrote:
> Hello again, Richard.
> On Mon, Jul 22, 2019 at 20:47:22 +0100, Richard Copley wrote:
> [ .... ]
> > 3. (This one's reproducible and 'stable' -- it's dependent only
> > on the current buffer contents, and not on the path that got us
> > there.) With these buffer contents:
> > order[x];
> > origin[y];
> > counterpane[z];
> > ... "x" and "y" are highlighted as types, and "z" is not
> > (expected: none of the three subscripts are
> > highlighted). There's apparently something special about the
> > identifiers "order" and "origin".
> OK, I've tracked this one down to a regexp not testing for end of
> word.
> I'm pretty sure the following patch fixes it, but would you please
> do the usual with it anyway. As this changes a Lisp macro, the
> entire CC Mode needs to be rebuilt after patching.
And here is that patch. I'm confident that the patch is the right fix
for the bug, so I will be committing it and closing the bug, unless I
hear anything against it in the next day or two.
diff -r 2e20f0567ddf cc-langs.el
--- a/cc-langs.el Tue Jul 23 09:45:20 2019 +0000
+++ b/cc-langs.el Tue Jul 23 10:34:14 2019 +0000
@@ -1480,7 +1480,7 @@
(c-lang-defconst c-pre-lambda-tokens-re
;; Regexp matching any token in the list `c-pre-lambda-tokens'.
- t (regexp-opt (c-lang-const c-pre-lambda-tokens)))
+ t (c-make-keywords-re t (c-lang-const c-pre-lambda-tokens)))
(c-lang-defvar c-pre-lambda-tokens-re (c-lang-const c-pre-lambda-tokens-re))
;;; Syntactic whitespace.
> Package: cc-mode
> Emacs : GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32)
> of 2019-07-23
> Package: CC Mode 5.34 (C/*l)
> Buffer Style: gnu
> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes
> gen-string-delim gen-comment-delim syntax-properties 1-bit)
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
Reply sent
to
Alan Mackenzie <acm <at> muc.de>
:
You have taken responsibility.
(Fri, 02 Aug 2019 13:07:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Richard Copley <rcopley <at> gmail.com>
:
bug acknowledged by developer.
(Fri, 02 Aug 2019 13:07:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 36801-done <at> debbugs.gnu.org (full text, mbox):
Hello, Richard.
I've committed the patch, and I'm closing the bug.
On Wed, Jul 24, 2019 at 20:51:47 +0100, Richard Copley wrote:
> Package: cc-mode
> With these buffer contents:
> order[x];
> origin[y];
> counterpane[z];
> ... "x" and "y" are highlighted as types [EDIT: keywords],
> and "z" is not.
> Reproduced below is the story so far, which comes after a discussion
> of unrelated matters at bug#36397.
> On Tue, 23 Jul 2019 at 11:40, Alan Mackenzie <acm <at> muc.de> wrote:
> Hello again, Richard.
> On Mon, Jul 22, 2019 at 20:47:22 +0100, Richard Copley wrote:
> [ .... ]
> > 3. (This one's reproducible and 'stable' -- it's dependent only
> > on the current buffer contents, and not on the path that got us
> > there.) With these buffer contents:
> > order[x];
> > origin[y];
> > counterpane[z];
> > ... "x" and "y" are highlighted as types, and "z" is not
> > (expected: none of the three subscripts are
> > highlighted). There's apparently something special about the
> > identifiers "order" and "origin".
> OK, I've tracked this one down to a regexp not testing for end of
> word.
> I'm pretty sure the following patch fixes it, but would you please
> do the usual with it anyway. As this changes a Lisp macro, the
> entire CC Mode needs to be rebuilt after patching.
> Thanks!
--
Alan Mackenzie (Nuremberg, Germany).
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 31 Aug 2019 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 5 years and 296 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.