Subject: Re: bug#61403: 30.0.50; C tree-sitter bug?

From: Eli Zaretskii <[email-masked]>
Date: Sun, 12 Feb 2023 10:56:30 +0200

> Cc: [email-masked]
> Date: Sun, 12 Feb 2023 16:36:10 +0800
> From:  Po Lu via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> Yuan Fu <[email-masked]> writes:
> 
> > Po Lu <[email-masked]> writes:
> >
> >> Go to sfnt.c in the feature/android branch, and turn on c-ts-mode.
> >>
> >> Then, go to line 10754, around which should be the function definition:
> >>
> >> /* Load the simple glyph GLYPH into the specified INTERPRETER, scaling
> >>    it up by INTERPRETER's scale, and run its glyph program if
> >>    present.  Use the unscaled metrics specified in METRICS.
> >>
> >>    Upon success, return NULL and the resulting points and contours in
> >>    *VALUE.  Else, value is the reason interpretation failed.  */
> >>
> >> TEST_STATIC const char *
> >> sfnt_interpret_simple_glyph (struct sfnt_glyph *glyph,
> >> 			     struct sfnt_interpreter *interpreter,
> >> 			     struct sfnt_glyph_metrics *metrics,
> >> 			     struct sfnt_instructed_outline **value)
> >> {
> >>   size_t zone_size, temp, outline_size, i;
> >>   struct sfnt_interpreter_zone *zone;
> >>   struct sfnt_interpreter_zone *volatile preserved_zone;
> >>   sfnt_f26dot6 phantom_point_1_x;
> >>
> >> `TEST_STATIC' is fontified as a type.  Perhaps tree-sitter needs
> >> something along the lines of `c-noise-macros'?
> >
> > Would it be reasonable to assume that all caps "type" are almost always
> > macros? If it is, we can optionally defontify these kind of "types".
> 
> Not really, because an extremely common type is:
> 
>     PTR_T *ptr;
> 
> where ``PTR_T'' is used to represent pointers on systems that may lack
> properly working pointers to void.
> 
> The standard library FILE * is also one such type with a capitalized
> name.

I admit I don't understand the problem that is the subject of this
bug.  Why is it wrong to fontify TEST_STATIC as a type?  CC mode also
fontifies it as a type, btw.

The only problem I see in what c-ts-mode does is that it does NOT
fontify 'char', whereas CC mode does.  So if anything needs to be done
here, we need to look into why 'char' is not fontified by c-ts-mode.

Or what am I missing?