bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-


From: Alan Mackenzie
Subject: bug#58641: 29.0.50; cc-fonts signals void variable: font-lock-reference-face
Date: Tue, 25 Oct 2022 10:09:12 +0000

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).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]