GNU bug report logs - #63322
CC Mode 5.35.2 (C/*l); Various problems fontifying sfnt.c

Previous Next

Package: cc-mode;

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

Date: Sat, 6 May 2023 08:12: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 63322 in the body.
You can then email your comments to 63322 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#63322; Package cc-mode. (Sat, 06 May 2023 08:12: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. (Sat, 06 May 2023 08:12: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); Various problems fontifying sfnt.c
Date: Sat, 06 May 2023 16:11:25 +0800
Package: cc-mode

Go to src/sfnt.c in the feature/android branch of Emacs.
Type M-s o ^sfnt RET, then visit each of the following function
definitions:

sfnt_scale_by_freedom_vector
sfnt_interpret_iup_1
sfnt_interpret_font_program
sfnt_interpret_control_value_program
sfnt_interpret_simple_glyph
sfnt_interpret_compound_glyph

In each of these definitions, the identifier name is not fontified as a
function!

Emacs  : GNU Emacs 29.0.90 (build 1, x86_64-pc-linux-gnu)
 of 2023-04-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#63322; Package cc-mode. (Wed, 10 May 2023 10:56:01 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 63322 <at> debbugs.gnu.org
Subject: Re: bug#63322: CC Mode 5.35.2 (C/*l); Various problems fontifying
 sfnt.c
Date: Wed, 10 May 2023 10:55:29 +0000
[Message part 1 (text/plain, inline)]
Hello, Po.

Thanks for the bug report.

On Sat, May 06, 2023 at 16:11:25 +0800, Po Lu via CC-Mode-help wrote:
> Package: cc-mode

> Go to src/sfnt.c in the feature/android branch of Emacs.
> Type M-s o ^sfnt RET, then visit each of the following function
> definitions:

> sfnt_scale_by_freedom_vector
> sfnt_interpret_iup_1
> sfnt_interpret_font_program
> sfnt_interpret_control_value_program
> sfnt_interpret_simple_glyph
> sfnt_interpret_compound_glyph

> In each of these definitions, the identifier name is not fontified as a
> function!

Yes.  There were actually two distinct problems here, one trivial to
solve and the other difficult.

For most of these function names, you just need to add the macro name
"TEST_STATIC" to c-noise-macro-names, as is done in .dir-locals for some
other names, and is explained fully in the chapter "Noise Macros" in the
CC Mode manual.

For the other two function names, the problem was that they followed a
large chunk of CPP macros, bigger than a search limit for one of CC
Mode's backward searches.  The fix was to check for this possibility and
handle it.

Would you please do the usual with the enclosed patch (which should
apply cleanly to both the emacs-29 branch and master), and let me know
how well it works.  Thanks!

> Emacs  : GNU Emacs 29.0.90 (build 1, x86_64-pc-linux-gnu)
>  of 2023-04-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).

[diff.20230510.diff (text/plain, attachment)]

Information forwarded to bug-cc-mode <at> gnu.org:
bug#63322; Package cc-mode. (Fri, 12 May 2023 03:19:01 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 63322 <at> debbugs.gnu.org
Subject: Re: bug#63322: CC Mode 5.35.2 (C/*l); Various problems fontifying
 sfnt.c
Date: Fri, 12 May 2023 11:18:07 +0800
Alan Mackenzie <acm <at> muc.de> writes:

> Hello, Po.
>
> Thanks for the bug report.
>
> On Sat, May 06, 2023 at 16:11:25 +0800, Po Lu via CC-Mode-help wrote:
>> Package: cc-mode
>
>> Go to src/sfnt.c in the feature/android branch of Emacs.
>> Type M-s o ^sfnt RET, then visit each of the following function
>> definitions:
>
>> sfnt_scale_by_freedom_vector
>> sfnt_interpret_iup_1
>> sfnt_interpret_font_program
>> sfnt_interpret_control_value_program
>> sfnt_interpret_simple_glyph
>> sfnt_interpret_compound_glyph
>
>> In each of these definitions, the identifier name is not fontified as a
>> function!
>
> Yes.  There were actually two distinct problems here, one trivial to
> solve and the other difficult.
>
> For most of these function names, you just need to add the macro name
> "TEST_STATIC" to c-noise-macro-names, as is done in .dir-locals for some
> other names, and is explained fully in the chapter "Noise Macros" in the
> CC Mode manual.
>
> For the other two function names, the problem was that they followed a
> large chunk of CPP macros, bigger than a search limit for one of CC
> Mode's backward searches.  The fix was to check for this possibility and
> handle it.
>
> Would you please do the usual with the enclosed patch (which should
> apply cleanly to both the emacs-29 branch and master), and let me know
> how well it works.  Thanks!

It works, thanks.




Reply sent to Alan Mackenzie <acm <at> muc.de>:
You have taken responsibility. (Fri, 12 May 2023 10:49:02 GMT) Full text and rfc822 format available.

Notification sent to Po Lu <luangruo <at> yahoo.com>:
bug acknowledged by developer. (Fri, 12 May 2023 10:49:02 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Po Lu <luangruo <at> yahoo.com>
Cc: acm <at> muc.de, 63322-done <at> debbugs.gnu.org
Subject: Re: bug#63322: CC Mode 5.35.2 (C/*l); Various problems fontifying
 sfnt.c
Date: Fri, 12 May 2023 10:48:39 +0000
Hello, Po.

On Fri, May 12, 2023 at 11:18:07 +0800, Po Lu wrote:
> Alan Mackenzie <acm <at> muc.de> writes:

[ .... ]

> > Would you please do the usual with the enclosed patch (which should
> > apply cleanly to both the emacs-29 branch and master), and let me
> > know how well it works.  Thanks!

> It works, thanks.

Thanks!  I've committed the patch 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. (Fri, 09 Jun 2023 11:24:06 GMT) Full text and rfc822 format available.

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

Previous Next


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