GNU bug report logs - #61135
CC Mode 5.35.2 (C/*l); Incorrect fontification of function call

Previous Next

Package: cc-mode;

Reported by: Po Lu <luangruo <at> yahoo.com>

Date: Sun, 29 Jan 2023 05:57: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 61135 in the body.
You can then email your comments to 61135 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-cc-mode <at> gnu.org:
bug#61135; Package cc-mode. (Sun, 29 Jan 2023 05:57: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. (Sun, 29 Jan 2023 05:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: bug-gnu-emacs <at> gnu.org
Subject: CC Mode 5.35.2 (C/*l); Incorrect fontification of function call
Date: Sun, 29 Jan 2023 13:55:50 +0800
Package: cc-mode

Insert the following text in a C Mode buffer:

static const char *
sfnt_interpret_font_program (struct sfnt_interpreter *interpreter,
			     struct sfnt_font_program *fpgm)
{
  if (setjmp (interpreter->trap))
    return interpreter->trap_reason;

  /* Set up the interpreter to evaluate the font program.  */
  interpreter->PC = 0;
  interpreter->SP = interpreter->stack;
  interpreter->instructions = fpgm->instructions;
  interpreter->num_instructions = fpgm->num_instructions;

  sfnt_interpret_run (interpreter, SFNT_RUN_CONTEXT_FONT_PROGRAM);
}

`sfnt_interpret_run' will be fontified in font-lock-function-name-face,
which is not how CC Mode usually works.  Thanks.

Emacs  : GNU Emacs 30.0.50 (build 41, x86_64-pc-linux-gnu)
 of 2023-01-29
Package: CC Mode 5.35.2 (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 category-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#61135; Package cc-mode. (Mon, 30 Jan 2023 20:24:01 GMT) Full text and rfc822 format available.

Message #8 received at 61135 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 61135 <at> debbugs.gnu.org
Subject: Re: bug#61135: CC Mode 5.35.2 (C/*l); Incorrect fontification of
 function call
Date: Mon, 30 Jan 2023 20:23:45 +0000
Hello, Po.

On Sun, Jan 29, 2023 at 13:55:50 +0800, Po Lu via CC-Mode-help wrote:
> Package: cc-mode

> Insert the following text in a C Mode buffer:

> static const char *
> sfnt_interpret_font_program (struct sfnt_interpreter *interpreter,
> 			     struct sfnt_font_program *fpgm)
> {
>   if (setjmp (interpreter->trap))
>     return interpreter->trap_reason;

>   /* Set up the interpreter to evaluate the font program.  */
>   interpreter->PC = 0;
>   interpreter->SP = interpreter->stack;
>   interpreter->instructions = fpgm->instructions;
>   interpreter->num_instructions = fpgm->num_instructions;

>   sfnt_interpret_run (interpreter, SFNT_RUN_CONTEXT_FONT_PROGRAM);
> }

> `sfnt_interpret_run' will be fontified in font-lock-function-name-face,
> which is not how CC Mode usually works.  Thanks.

This bug was triggered by the string "struct" in fpgm->inSTRUCTions and
fpgm->num_inSTRUCTions.  It would also have been triggered by either of
"union" or "extern".  There was a regexp which was lacking a "\\>"
element for "match end of word".  ("\\_>" is unavailable on XEmacs.).

I've fixed the macro which generates that regexp and committed the
change to the release branch.  Would you please update your Emacs, and
confirm that the bug has indeed been fixed.  Thanks!

> Emacs  : GNU Emacs 30.0.50 (build 41, x86_64-pc-linux-gnu)
>  of 2023-01-29
> Package: CC Mode 5.35.2 (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 category-properties 1-bit)

[ .... ]

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-cc-mode <at> gnu.org:
bug#61135; Package cc-mode. (Sat, 04 Feb 2023 00:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 61135 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <Luangruo <at> yahoo.com>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 61135 <at> debbugs.gnu.org
Subject: Re: bug#61135: CC Mode 5.35.2 (C/*l); Incorrect fontification of function call
Date: Sat, 04 Feb 2023 08:19:58 +0800
I think my reply got lost.  Yes, it's been fixed, thanks.

On February 4, 2023 5:09:58 AM GMT+08:00, Alan Mackenzie <acm <at> muc.de> wrote:
>Hello, Po.
>
>Did you get my email last Sunday about bug #61135?  Possibly not.  Or I
>didn't get your reply, for some reason.
>
>Here's another copy of it.  Perhaps you could deal with it in the next
>day or two.
>
>Thanks!
>




Reply sent to Alan Mackenzie <acm <at> muc.de>:
You have taken responsibility. (Sat, 04 Feb 2023 10:39:02 GMT) Full text and rfc822 format available.

Notification sent to Po Lu <luangruo <at> yahoo.com>:
bug acknowledged by developer. (Sat, 04 Feb 2023 10:39:02 GMT) Full text and rfc822 format available.

Message #16 received at 61135-done <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Po Lu <Luangruo <at> yahoo.com>
Cc: 61135-done <at> debbugs.gnu.org
Subject: Re: bug#61135: CC Mode 5.35.2 (C/*l); Incorrect fontification of
 function call
Date: Sat, 4 Feb 2023 10:38:09 +0000
Hello, Po.

On Sat, Feb 04, 2023 at 08:19:58 +0800, Po Lu wrote:
> I think my reply got lost.  Yes, it's been fixed, thanks.

OK, thanks.  I'm closing the bug, now (if you haven't already done so).

> On February 4, 2023 5:09:58 AM GMT+08:00, Alan Mackenzie <acm <at> muc.de> wrote:

> >Did you get my email last Sunday about bug #61135?  Possibly not.  Or I
> >didn't get your reply, for some reason.

-- 
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, 04 Mar 2023 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 168 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.