unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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).