emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs 23.3 stops font-lock when have long face name


From: Eli Zaretskii
Subject: Re: Emacs 23.3 stops font-lock when have long face name
Date: Mon, 30 Nov 2015 18:07:58 +0200

> Date: Thu, 26 Nov 2015 09:13:18 -0500
> From: "Wilson Snyder" <address@hidden>
> 
> > Can anyone please suggest what version this was fixed and
> > suggest a workaround for the older Emacsen?
> >
> > I would prefer not to rename the long face's name (really
> > it's verilog-font-grouping-keywords-face) since that name
> > has been stable for several versions of Emacs and may be in
> > user's customizations.
> 
> A very small tarball showing this issue is at
> http://www.veripool.org/attachments/download/703/test.tgz
> 
> To run this, using Emacs 24.3 (and 23.3 and probably others but not 25.0),
> extract and type ./test.sh
> 
> You'll see the first four "new" keywords are highlighted. Later ones are
> incorrectly not highlighted.
> 
> If you then edit test.el to change
> v-font-long-name-here-here-here-here-face to v-font-short-face, which has
> an identical definition, you'll see the fontification works correctly.

Thanks for the reproducible test case, and sorry for the long delay.

The problem with this face name has nothing to do with its length.  It
has to do with the fact that the face and the corresponding variable
have similar but different names:

  (defvar v-font-very-long-name-here-here-here-here-face
    'v-font-long-name-here-here-here-here-face
    "x")
  (defface v-font-long-name-here-here-here-here-face

See the difference?  The face name begins with "v-font-very", but the
variable name (name, not value) lacks the "very" part.

This is what causes the problem: you will see error messages from
redisplay in the *Messages* buffer complaining about a void variable.

Rename the variable thusly:

  (defvar v-font-long-name-here-here-here-here-face
    'v-font-long-name-here-here-here-here-face
    "x")

and the problem will disappear in Emacs 24.  So there's your
workaround.

HTH



reply via email to

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