Subject: bug#1852 closed by Chong Yidong <[email-masked]> (Re: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique))

From: [email-masked] (Emacs bug Tracking System)
Date: Sun, 11 Jan 2009 17:35:05 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#1852: 23.0.60;  describe-face: Wrong type argument: symbolp, (:slant oblique)

It has been closed by Chong Yidong <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Chong Yidong <[email-masked]> by
replying to this email.

-- 
1852: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1852
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
From: Chong Yidong <[email-masked]>
To: Stephen Berman <[email-masked]>
Cc: [email-masked]
Date: Sun, 11 Jan 2009 12:29:10 -0500

> 1. emacs -q
> 2. Put the cursor on any of the characters in the phrase "ABSOLUTELY NO
> WARRANTY" in the splash screen.
> 3. Type C-u C-x =
> 4. In the resulting *Help* buffer click on the link labelled
> "(variable-pitch (:slant oblique))"
> => Emacs beeps and throws the error in the Subject line.

Since anonymous faces can't be usefully customized, I've changed
describe-face to ignore those.  Thanks for the bug report.

Subject: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
From: Stephen Berman <[email-masked]>
To: [email-masked]
Date: Sat, 10 Jan 2009 22:20:13 +0100

The bug described below still exists in GNU Emacs 23.0.60.28
(i686-pc-linux-gnu, GTK+ Version 2.14.4) of 2009-01-09 on escher, so I'm
submitting it to the bug tracker.  Note that the cited sexp from
faces.el is now at line 1360, not 1307.

From: Stephen Berman <[email-masked]>
Subject: describe-face: Wrong type argument: symbolp, (:slant oblique)
Newsgroups: gmane.emacs.devel
To: [email-masked]
Date: Mon, 26 May 2008 00:59:57 +0200

In GNU Emacs 23.0.60.4 (i686-pc-linux-gnu, GTK+ Version 2.12.0) of
2008-05-25 on escher

1. emacs -q
2. Put the cursor on any of the characters in the phrase "ABSOLUTELY NO
WARRANTY" in the splash screen.
3. Type C-u C-x =
4. In the resulting *Help* buffer click on the link labelled
"(variable-pitch (:slant oblique))"
=> Emacs beeps and throws the error in the Subject line.

This happens at line 1307 in faces.el, which is this sexp:

(insert "Face: " (symbol-name f))

when `f' gets the value `(:slant oblique)', which it does because the
list '(variable-pitch (:slant oblique)) is the value of 'face in the
plist of the character at point (as shown by text-properties-at).  I
don't know what the best fix is.

(In earlier versions of Emacs, including CVS trunk of 2007-08-24, this
value was '(variable-pitch :slant oblique), and doing the above steps
does not raise an error, but the resulting *Help* buffer contains these
dubious lines:

Face: :slant   undefined face.
Face: oblique   undefined face.

But in this version a wrong type argument error is also raised by the
above recipe for plist 'face values such as '(variable-pitch :foreground
"red"), on the string.  I could not determine when the change in the
representation of the plist value of 'face occurred, because I couldn't
figure out which part of the code constructs this plist.)

Steve Berman