Subject: bug#51465: 27.2; `face-all-attributes' doc or behavior (?)

From: Eli Zaretskii <[email-masked]>
Date: Thu, 28 Oct 2021 22:33:45 +0300

> From: Drew Adams <[email-masked]>
> Date: Thu, 28 Oct 2021 19:08:53 +0000
> 
> What does that mean - what are the default attributes?  I was expecting
> that it meant the default settings for the face: default set of
> attributes with their default values for that face.

"Default attributes" and "default settings for the face" are one and
the same.

> (elisp) `Attribute Functions' says "the default attributes of FACE for
> newly created frames".  I would expect to see :background as
> "LightGoldenrod", not as `unspecified'.

Why? because that's what you actually see in a new frame?  Those
aren't the default attributes, those are the attributes specified by
defface.

> If arg FRAME is specified (as a frame) then the function returns the
> attributes of FACE on FRAME.  Not sure what that means either - faces
> have different attributes on different frames?

Of course.  Faces are, and always were, specific to frames.  You can
change face attributes on one frame without affecting any other
frames.

> If I do `M-x customize-face region' from emacs -Q I see :background set
> as "LightGoldenrod".

Because that shows the face on the current frame.

> That command customizes the face for all frames,
> no?

Yes.

> So doesn't that mean that the face has that background for all
> frames (by default)?

No.

> Why would one want to get a list of the face's attributes with every
> attribute value as `unspecified'?

I don't know.  I guess those defaults are not very interesting,
indeed.

> More importantly, how to get the actual (default) values "for all
> frames"

There's no such thing.  You must supply a frame to answer that
question.