GNU bug report logs - #5129
23.1.50; adding font-lock-keywords for face highlight

Previous Next

Package: emacs;

Reported by: "Roland Winkler" <Roland.Winkler <at> physik.uni-erlangen.de>

Date: Sat, 5 Dec 2009 19:20:04 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (Emacs bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: bug#5129: marked as done (23.1.50; adding font-lock-keywords for
 face highlight)
Date: Sat, 05 Dec 2009 21:10:10 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sat, 05 Dec 2009 16:04:29 -0500
with message-id <jwv1vj9nni9.fsf-monnier+emacsbugreports <at> gnu.org>
and subject line Re: bug#5129: 23.1.50; adding font-lock-keywords for face highlight
has caused the Emacs bug report #5129,
regarding 23.1.50; adding font-lock-keywords for face highlight
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact help-debbugs <at> gnu.org
immediately.)


-- 
5129: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5129
Emacs Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "Roland Winkler" <Roland.Winkler <at> physik.uni-erlangen.de>
To: emacs-pretest-bug <at> gnu.org
Subject: 23.1.50; adding font-lock-keywords for face highlight
Date: Sat, 05 Dec 2009 13:15:31 -0600
The highlight face is somehow treated special in an odd way:

If I eval the following in a buffer it will highlight all occurences
of "foo" as expected:

  (font-lock-add-keywords nil '(("foo" . font-lock-constant-face)))

Yet when I do instead

  (font-lock-add-keywords nil '(("foo" . highlight)))

it gives me the message (in the *Messages* buffer)

  Invalid face reference: 0

When I put point at the position of the string "foo" and evaluate

  (get-text-property (point) 'face)

this gives me

  (0 highlight)

which probably explains the "invalid face reference" error.
Why is the face `0' added?


In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.14.4)
 of 2009-12-04 on regnitz
Windowing system distributor `The X.Org Foundation', version 11.0.10502000

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: en_GB.utf8
  value of $LANG: en_US.ISO-8859-15
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-9-unix
  default enable-multibyte-characters: t

[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Roland Winkler <Roland.Winkler <at> physik.uni-erlangen.de>
Subject: Re: bug#5129: 23.1.50; adding font-lock-keywords for face highlight
Date: Sat, 05 Dec 2009 16:04:29 -0500
>   (font-lock-add-keywords nil '(("foo" . font-lock-constant-face)))
                                           ^^^^^^^^^^^^^^^^^^^^^^^
> Yet when I do instead

>   (font-lock-add-keywords nil '(("foo" . highlight)))
                                           ^^^^^^^^^

Thos two things are treated by font-lock as a Lisp expression
to evaluate.  Since font-lock-constant-face is a variable (whose
content is usually the symbol font-lock-constant-face), the first will
work, whereas the second will either signal en error (because the
variable `highlight' doesn't exist) or lead to odd behavior (because
`highlight' just happens to be let-bound by one of the caller).

I.e. you want

   (font-lock-add-keywords nil '(("foo" . 'highlight)))
                                         ^^^

-- Stefan

This bug report was last modified 15 years and 229 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.