* bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
@ 2009-01-10 21:20 Stephen Berman
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Berman @ 2009-01-10 21:20 UTC (permalink / raw)
To: emacs-pretest-bug
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 <Stephen.Berman@gmx.net>
Subject: describe-face: Wrong type argument: symbolp, (:slant oblique)
Newsgroups: gmane.emacs.devel
To: emacs-devel@gnu.org
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
@ 2009-01-11 22:29 Stephen Berman
2009-01-12 2:38 ` Chong Yidong
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Berman @ 2009-01-11 22:29 UTC (permalink / raw)
To: 1852; +Cc: Chong Yidong
>> 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.
Your fix prevents the error from being raised at step 4 above; however,
the behavior is nevertheless still not what I would naively expect:
namely, now it switches to a *Help* buffer describing variable-pitch
face, containing the line
Slant: unspecified
i.e., this is not the face that I clicked to get a description of (as
the tooltip also promises). Wouldn't it be better (if readily
implementable) to exclude `(:slant oblique)' from the the describe-face
link?
Steve Berman
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
2009-01-11 22:29 bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique) Stephen Berman
@ 2009-01-12 2:38 ` Chong Yidong
2009-01-12 12:19 ` Stephen Berman
0 siblings, 1 reply; 4+ messages in thread
From: Chong Yidong @ 2009-01-12 2:38 UTC (permalink / raw)
To: Stephen Berman; +Cc: 1852
Stephen Berman <stephen.berman@gmx.net> writes:
> Your fix prevents the error from being raised at step 4 above; however,
> the behavior is nevertheless still not what I would naively expect:
> namely, now it switches to a *Help* buffer describing variable-pitch
> face, containing the line
> Slant: unspecified
> i.e., this is not the face that I clicked to get a description of (as
> the tooltip also promises). Wouldn't it be better (if readily
> implementable) to exclude `(:slant oblique)' from the the describe-face
> link?
The "face" you are trying to customize is actually two faces---the
`variable-pitch' face plus an anonymous face consisting of the
property-value pair (:slant oblique). The best that Custom can do is to
allow you to customize the former. The latter can't be customized
because it lacks a face name (how would we save the customized face?).
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
2009-01-12 2:38 ` Chong Yidong
@ 2009-01-12 12:19 ` Stephen Berman
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Berman @ 2009-01-12 12:19 UTC (permalink / raw)
To: Chong Yidong; +Cc: 1852
On Sun, 11 Jan 2009 21:38:45 -0500 Chong Yidong <cyd@stupidchicken.com> wrote:
> Stephen Berman <stephen.berman@gmx.net> writes:
>
>> Your fix prevents the error from being raised at step 4 above; however,
>> the behavior is nevertheless still not what I would naively expect:
>> namely, now it switches to a *Help* buffer describing variable-pitch
>> face, containing the line
>> Slant: unspecified
>> i.e., this is not the face that I clicked to get a description of (as
>> the tooltip also promises). Wouldn't it be better (if readily
>> implementable) to exclude `(:slant oblique)' from the the describe-face
>> link?
>
> The "face" you are trying to customize is actually two faces---the
> `variable-pitch' face plus an anonymous face consisting of the
> property-value pair (:slant oblique).
I was obviously confused above, but I also think it's confusing to say
there are two faces here and to call `(:slant oblique)' an anonymous
face. `(variable-pitch (:slant oblique))' is simply the value of the
face property (as indeed the *Help* buffer explicitly says; I don't know
why I was confused).
> The best that Custom can do is to
> allow you to customize the former. The latter can't be customized
> because it lacks a face name (how would we save the customized face?).
Since the value of the face property can contain named faces, I expect
these to be customizable, and indeed, when I type `C-u
C-x =' on the `A' of `Authors' in the *About GNU Emacs* buffer, the
*Help* buffer shows this:
There are text properties here:
face (link variable-pitch)
and when I click on this value I do indeed get a buffer describing both
the link and variable-pitch faces, each with an accompanying customize
button. Since `(:slant oblique)' in the previous case is not a named
face, it cannot, as you say, be customized. But for this reason, I
think it would be better, as I suggested, to have `(:slant oblique)' not
be clickable in the output of `C-u C-x ='.
I found two other cases that seem buggy:
(a) Type `C-u C-x =' on any of the letters in `GNU Emacs' or `GNU/Linux'
in the line directly below the Emacs logo in the *About GNU Emacs*
buffer. The resulting *Help* buffer shows this as the value of the face
property:
face (link (variable-pitch (:foreground "red")))
This is not a valid value of the face property; instead, it should be this:
face (link variable-pitch (:foreground "red"))
Moreover, I would expect clicking on the value to show me descriptions
of the link and variable-pitch faces, as above. Instead, there is only
a description of the link face. (I would recommend two clickable links
here, one for each named face, and none for the property-value pair.)
(b) In a Text mode buffer, mark a region of text, click the menu entry
Edit->Text Properties->Foreground Color->red, and on one of the
resulting red characters type `C-u C-x ='. The *Help* buffers shows:
face ((:foreground "red"))
which is fine, but when I click on the value, I get an empty *Help*
buffer. This is another reason for this type of face value not to be
overlayed with a clickable link.
Steve Berman
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-01-12 12:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-11 22:29 bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique) Stephen Berman
2009-01-12 2:38 ` Chong Yidong
2009-01-12 12:19 ` Stephen Berman
-- strict thread matches above, loose matches on Subject: below --
2009-01-10 21:20 Stephen Berman
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).