bug#64322: CC Mode 5.35.2 (C/*l); More incorrect type recognition
Po Lu via CC-Mode-help <[email protected]> Sat, 01 Jul 2023 08:22:41 +0800
| Newsgroups | gmane.emacs.cc-mode.general |
|---|---|
| Message-ID | <[email protected]> |
Alan Mackenzie <[email protected]> writes: > Hello, Po. > > On Wed, Jun 28, 2023 at 15:05:03 +0800, Po Lu via CC-Mode-help wrote: >> Package: cc-mode > >> I just encountered a new instance of CC Mode misrecognizing identifiers >> as types. In a C Mode buffer, insert: > >> void >> add_property (name, expression) > >> then, type: > >> RET TAB s t r u c t SPC e x p r e s s i o n SPC e x p r e s s i o n ; > >> `expression' will then be fontified as a type within the function >> declarator's identifier list! > > Yes. The problem was a confusion between C++ and C regarding type > definition. In C++, "class Foo" or "struct Foo" defines a type "Foo". > In C, in "struct Foo", there is no such type defined, "Foo" is merely a > struct tag. > > This involves a one line fix in cc-langs.el, to remove items from the > lang const c-typeless-decl-kwds. Additionally, I've corrected an > unrelated typo in cc-fonts.el. > > Would you please try out the attached patch in your real code > thoroughly, and either confirm the bug is fixed, or tell me what's still > wrong. Thanks! > >> Thanks in advance. > >> Emacs : GNU Emacs 29.0.92 (build 1, x86_64-pc-linux-gnu) >> of 2023-06-25 >> 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) Seems to work here, thanks. Eli, could we have this on the emacs-29 branch?