GNU bug report logs -
#54743
CC Mode 5.35.1 (C/*l); Incorrect fontification of function call as function name
Previous Next
Reported by: Po Lu <luangruo <at> yahoo.com>
Date: Wed, 6 Apr 2022 02:06:02 UTC
Severity: normal
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 54743 in the body.
You can then email your comments to 54743 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#54743
; Package
cc-mode
.
(Wed, 06 Apr 2022 02:06:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Po Lu <luangruo <at> yahoo.com>
:
New bug report received and forwarded. Copy sent to
bug-cc-mode <at> gnu.org
.
(Wed, 06 Apr 2022 02:06:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Package: cc-mode
Open src/haikumenu.c in the Emacs source code, and go to line 352. The
calls to `process_pending_signals' and `internal_catch_all' are
fontified as function names, which is wrong.
Thanks.
Emacs : GNU Emacs 29.0.50 (build 1, x86_64-unknown-haiku, Haiku R1/beta3, cairo version 1.16.0)
of 2022-04-06
Package: CC Mode 5.35.1 (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 '(t 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 "[ ]*\\(//+\\|\\**\\)[ ]*\\([ ]*\\([-–!|#%;>*·•‣⁃◦]+[ ]*\\)*\\)"
)
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#54743
; Package
cc-mode
.
(Sat, 09 Apr 2022 15:14:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 54743 <at> debbugs.gnu.org (full text, mbox):
Hello, Po.
On Wed, Apr 06, 2022 at 10:05:36 +0800, Po Lu via CC-Mode-help wrote:
> Package: cc-mode
> Open src/haikumenu.c in the Emacs source code, and go to line 352. The
> calls to `process_pending_signals' and `internal_catch_all' are
> fontified as function names, which is wrong.
> Thanks.
This bug has the same cause as bug #52796, namely that a function's type
contains the keyword struct, and an internal CC Mode cache thus thinks
that the function's { is a struct's {, and that we are thus still at
"top level". The "fix" to that bug was to handle the * in "struct foo
*" specially, but that wasn't a good enough fix for when "struct foo"
occurs without a *, as here.
So, the cause of the bug is understood. The challenge will be to fix it
without unduly slowing down CC Mode. That's not going to happen this
afternoon, I'm afraid.
> Emacs : GNU Emacs 29.0.50 (build 1, x86_64-unknown-haiku, Haiku R1/beta3, cairo version 1.16.0)
> of 2022-04-06
> Package: CC Mode 5.35.1 (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).
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#54743
; Package
cc-mode
.
(Sun, 10 Apr 2022 01:06:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 54743 <at> debbugs.gnu.org (full text, mbox):
Alan Mackenzie <acm <at> muc.de> writes:
> This bug has the same cause as bug #52796, namely that a function's type
> contains the keyword struct, and an internal CC Mode cache thus thinks
> that the function's { is a struct's {, and that we are thus still at
> "top level". The "fix" to that bug was to handle the * in "struct foo
> *" specially, but that wasn't a good enough fix for when "struct foo"
> occurs without a *, as here.
>
> So, the cause of the bug is understood. The challenge will be to fix it
> without unduly slowing down CC Mode. That's not going to happen this
> afternoon, I'm afraid.
Thanks for looking into it.
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#54743
; Package
cc-mode
.
(Sun, 10 Apr 2022 10:39:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 54743 <at> debbugs.gnu.org (full text, mbox):
Hello again, Po.
On Wed, Apr 06, 2022 at 10:05:36 +0800, Po Lu via CC-Mode-help wrote:
> Package: cc-mode
> Open src/haikumenu.c in the Emacs source code, and go to line 352. The
> calls to `process_pending_signals' and `internal_catch_all' are
> fontified as function names, which is wrong.
> Thanks.
> Emacs : GNU Emacs 29.0.50 (build 1, x86_64-unknown-haiku, Haiku R1/beta3, cairo version 1.16.0)
> of 2022-04-06
> Package: CC Mode 5.35.1 (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)
It looks like the bug was a "simple" mistyping. I think the following
patch, which is literally a 1-bit change, should fix the problem. Would
you please try it out, and confirm to me that it does indeed fix the
problem. Thanks!
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index ebc1ef4301..b2fa9e0691 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -6139,7 +6139,7 @@ c-update-brace-stack
(setq s (cons -1 (cdr s))))
((and (equal match ",")
(eq (car s) -1))) ; at "," in "class foo : bar, ..."
- ((member match '(";" "*" "," "("))
+ ((member match '(";" "*" "," ")"))
(when (and s (cdr s) (<= (car s) 0))
(setq s (cdr s))))
((c-keyword-member kwd-sym 'c-flat-decl-block-kwds)
--
Alan Mackenzie (Nuremberg, Germany).
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#54743
; Package
cc-mode
.
(Sun, 10 Apr 2022 11:22:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 54743 <at> debbugs.gnu.org (full text, mbox):
Alan Mackenzie <acm <at> muc.de> writes:
> It looks like the bug was a "simple" mistyping. I think the following
> patch, which is literally a 1-bit change, should fix the problem. Would
> you please try it out, and confirm to me that it does indeed fix the
> problem. Thanks!
That fixes the problem, yes. Thanks for finding the fix.
Reply sent
to
Alan Mackenzie <acm <at> muc.de>
:
You have taken responsibility.
(Sun, 10 Apr 2022 12:31:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Po Lu <luangruo <at> yahoo.com>
:
bug acknowledged by developer.
(Sun, 10 Apr 2022 12:31:03 GMT)
Full text and
rfc822 format available.
Message #22 received at 54743-done <at> debbugs.gnu.org (full text, mbox):
Hello, Po.
On Sun, Apr 10, 2022 at 19:21:17 +0800, Po Lu wrote:
> Alan Mackenzie <acm <at> muc.de> writes:
> > It looks like the bug was a "simple" mistyping. I think the following
> > patch, which is literally a 1-bit change, should fix the problem. Would
> > you please try it out, and confirm to me that it does indeed fix the
> > problem. Thanks!
> That fixes the problem, yes. Thanks for finding the fix.
Thanks for checking and replying so quickly! I've committed the fix to
the master branch, and I'm closing the bug with this post.
--
Alan Mackenzie (Nuremberg, Germany).
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 09 May 2022 11:24:07 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 39 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.