unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)
@ 2009-01-10 21:20 ` Stephen Berman
  2009-01-11 17:35   ` bug#1852: marked as done (23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)) Emacs bug Tracking System
  0 siblings, 1 reply; 5+ 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] 5+ messages in thread

* bug#1852: marked as done (23.0.60;  describe-face: Wrong type  argument: symbolp, (:slant oblique))
  2009-01-10 21:20 ` bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique) Stephen Berman
@ 2009-01-11 17:35   ` Emacs bug Tracking System
  0 siblings, 0 replies; 5+ messages in thread
From: Emacs bug Tracking System @ 2009-01-11 17:35 UTC (permalink / raw)
  To: Chong Yidong

[-- Attachment #1: Type: text/plain, Size: 928 bytes --]


Your message dated Sun, 11 Jan 2009 12:29:10 -0500
with message-id <87tz8569ax.fsf@cyd.mit.edu>
and subject line Re: 23.0.60;  describe-face: Wrong type argument: symbolp, (:slant oblique)
has caused the Emacs bug report #1852,
regarding 23.0.60;  describe-face: Wrong type argument: symbolp, (:slant oblique)
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 owner@emacsbugs.donarmstrong.com
immediately.)


-- 
1852: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1852
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 4067 bytes --]

From: Stephen Berman <stephen.berman@gmx.net>
To: emacs-pretest-bug@gnu.org
Subject: 23.0.60;  describe-face: Wrong type argument: symbolp, (:slant oblique)
Date: Sat, 10 Jan 2009 22:20:13 +0100
Message-ID: <87y6xieu42.fsf@escher.local.home>

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







[-- Attachment #3: Type: message/rfc822, Size: 1511 bytes --]

From: Chong Yidong <cyd@stupidchicken.com>
To: Stephen Berman <stephen.berman@gmx.net>
Cc: 1852-done@emacsbugs.donarmstrong.com
Subject: Re: 23.0.60;  describe-face: Wrong type argument: symbolp, (:slant oblique)
Date: Sun, 11 Jan 2009 12:29:10 -0500
Message-ID: <87tz8569ax.fsf@cyd.mit.edu>

> 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.


^ permalink raw reply	[flat|nested] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ messages in thread

end of thread, other threads:[~2009-01-12 12:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <87tz8569ax.fsf@cyd.mit.edu>
2009-01-10 21:20 ` bug#1852: 23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique) Stephen Berman
2009-01-11 17:35   ` bug#1852: marked as done (23.0.60; describe-face: Wrong type argument: symbolp, (:slant oblique)) Emacs bug Tracking System
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

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).