Subject: RE: [External] : bug#54156: 28.0.91; set-face-attribute with a nil FRAME doesn't change the default

From: Drew Adams <[email-masked]>
Date: Sun, 27 Feb 2022 15:49:43 +0000

> > You said to use both (separately).
> > My question was why to bother _also_
> > using `t'.
> 
> Because it's future-proof.  And because resetting a color attribute to
> 'unspecified' so that it overrides the defface is an unusual thing to
> do, and so it better stands out in the code, telling everyone that
> this is the intent.

Thank you for finally stating your reason.  And
for finally confirming that what I said I thought
was the behavior is in fact the behavior.
___

FWIW, I disagree (but at least now it's clear
why you have that opinion).  I think telling
people to use both only confuses.  They'll wonder
why, the same as I did - unless you also indicate
your reason somehow/somewhere.
___

Beyond that, what about the question of making
backward-support behavior known?  Why only
"silently support" the use of nil this way?
Support, yes, sure.  But why silently?

We usually try to also provide a warning message
when you use constructs deemed deprecated/obsolete.
This pitfall is easy to fall into, IMO, regardless
of whether you think the reasonable use case is
rare.

You haven't yet given your reasons for resisting
making this gotcha better known to users - e.g.
by displaying a warning message.

When you don't give reasons it just leads to more
back & forth and misunderstanding.  Please try to
be clear and explicit about this.  Thank you.
___

I also don't agree that a user or user code would
only _rarely_ want to reset a face attribute to
`unspecified'.  We provide checkboxes in Customize
for exactly that, no?  Is this different from
unchecking a checkbox?

After you uncheck the Background checkbox for
`M-x customize-face region' this sexp returns
`unspecified':

 (face-attribute 'region :background t)

What am I missing, here?  If this has the same
effect as setting it to `unspecified' in Lisp:

 (set-face-attribute 'region nil :background 'unspecified)

then why consider it and "unusual" and "rare"?