* bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face
@ 2022-10-19 18:13 Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-25 10:09 ` Alan Mackenzie
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-10-19 18:13 UTC (permalink / raw)
To: 58641; +Cc: bug-cc-mode
Package: Emacs
Version: 29.0.50
If I start
% emacs -Q --eval '(make-face `font-lock-reference-face)' -l cc-fonts
I get the error:
defconst: Symbol’s value as variable is void: font-lock-reference-face
Something like the patch below seems in order.
Not sure if the FIXME is a confusion of mine or is a real problem.
Stefan
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index aa16da70703..d8776d8322a 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -146,11 +146,14 @@ c-constant-face-name
(defconst c-reference-face-name
(with-no-warnings
(if (and (c-face-name-p 'font-lock-reference-face)
+ (boundp 'font-lock-reference-face)
(eq font-lock-reference-face 'font-lock-reference-face))
;; This is considered obsolete in Emacs, but it still maps well
;; to this use. (Another reason to do this is to get unique
;; faces for the test suite.)
'font-lock-reference-face
+ ;; FIXME: `font-lock-reference-face' was an alias for
+ ;; `font-lock-constant-face', not `font-lock-label-face'.
c-label-face-name)))
;; This should not mapped to a face that also is used to fontify things
@@ -586,7 +589,8 @@ c-fontify-recorded-types-and-refs
(c-lang-const c-opt-cpp-macro-define)
(c-lang-const c-nonempty-syntactic-ws)
"\\(" (c-lang-const ; 1 + ncle + nsws
- c-symbol-key) "\\)"
+ c-symbol-key)
+ "\\)"
(concat "\\(" ; 2 + ncle + nsws + c-sym-key
;; Macro with arguments - a "function".
"\\((\\)" ; 3 + ncle + nsws + c-sym-key
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face
2022-10-19 18:13 bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-10-25 10:09 ` Alan Mackenzie
2022-10-25 12:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 4+ messages in thread
From: Alan Mackenzie @ 2022-10-25 10:09 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bug-cc-mode, 58641
Hello, Stefan.
Sorry it's taken me so long to getting around to answering. The last
few days have been a bit busy.
On Wed, Oct 19, 2022 at 14:13:22 -0400, Stefan Monnier via CC-Mode-help wrote:
> Package: Emacs
> Version: 29.0.50
> If I start
> % emacs -Q --eval '(make-face `font-lock-reference-face)' -l cc-fonts
> I get the error:
> defconst: Symbol’s value as variable is void: font-lock-reference-face
> Something like the patch below seems in order.
GRRRR! Yes, it is in order. A small point, perhaps, but we aim for
perfection in CC Mode. ;-) I'll commit this, after checking that
the same thing doesn't happen anywhere else in cc-fonts.el. Actually,
it does, so I'll correct those other things, too.
> Not sure if the FIXME is a confusion of mine or is a real problem.
The aliasing of missing faces is a mass of confusion, which takes up
more mental energy than it deserves. But yes, it would be better for
f-l-reference-face to be mapped to f-l-constant-face before defaulting
to c-label-face-name. I'll do this, too.
> Stefan
> diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
> index aa16da70703..d8776d8322a 100644
> --- a/lisp/progmodes/cc-fonts.el
> +++ b/lisp/progmodes/cc-fonts.el
> @@ -146,11 +146,14 @@ c-constant-face-name
> (defconst c-reference-face-name
> (with-no-warnings
> (if (and (c-face-name-p 'font-lock-reference-face)
> + (boundp 'font-lock-reference-face)
> (eq font-lock-reference-face 'font-lock-reference-face))
> ;; This is considered obsolete in Emacs, but it still maps well
> ;; to this use. (Another reason to do this is to get unique
> ;; faces for the test suite.)
> 'font-lock-reference-face
> + ;; FIXME: `font-lock-reference-face' was an alias for
> + ;; `font-lock-constant-face', not `font-lock-label-face'.
> c-label-face-name)))
> ;; This should not mapped to a face that also is used to fontify things
> @@ -586,7 +589,8 @@ c-fontify-recorded-types-and-refs
> (c-lang-const c-opt-cpp-macro-define)
> (c-lang-const c-nonempty-syntactic-ws)
> "\\(" (c-lang-const ; 1 + ncle + nsws
> - c-symbol-key) "\\)"
> + c-symbol-key)
> + "\\)"
> (concat "\\(" ; 2 + ncle + nsws + c-sym-key
> ;; Macro with arguments - a "function".
> "\\((\\)" ; 3 + ncle + nsws + c-sym-key
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face
2022-10-25 10:09 ` Alan Mackenzie
@ 2022-10-25 12:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-25 13:43 ` Alan Mackenzie
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-10-25 12:51 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: bug-cc-mode, 58641
Hi Alan,
>> If I start
>
>> % emacs -Q --eval '(make-face `font-lock-reference-face)' -l cc-fonts
>
>> I get the error:
>
>> defconst: Symbol’s value as variable is void: font-lock-reference-face
>
>> Something like the patch below seems in order.
>
> GRRRR! Yes, it is in order. A small point, perhaps, but we aim for
> perfection in CC Mode. ;-)
For the record, I bumped into the above because apparently one of the
many packages I have installed defines `font-lock-reference-face`
(probably some very old code that should be removed as well, but
I haven't tracked it down yet).
Stefan
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face
2022-10-25 12:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-10-25 13:43 ` Alan Mackenzie
0 siblings, 0 replies; 4+ messages in thread
From: Alan Mackenzie @ 2022-10-25 13:43 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bug-cc-mode, 58641-done
Hello, Stefan.
On Tue, Oct 25, 2022 at 08:51:39 -0400, Stefan Monnier wrote:
> Hi Alan,
> >> If I start
> >> % emacs -Q --eval '(make-face `font-lock-reference-face)' -l cc-fonts
> >> I get the error:
> >> defconst: Symbol’s value as variable is void: font-lock-reference-face
> >> Something like the patch below seems in order.
> > GRRRR! Yes, it is in order. A small point, perhaps, but we aim for
> > perfection in CC Mode. ;-)
> For the record, I bumped into the above because apparently one of the
> many packages I have installed defines `font-lock-reference-face`
> (probably some very old code that should be removed as well, but
> I haven't tracked it down yet).
Ah, so that was it.
I've just committed a patch, and I'm closing the bug with this post.
I didn't actually comment your comment about font-lock-constant-face, I
amended the code instead.
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-25 13:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-19 18:13 bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-25 10:09 ` Alan Mackenzie
2022-10-25 12:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-25 13:43 ` Alan Mackenzie
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).