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: Sat, 26 Feb 2022 22:47:41 +0000

> > But is what I said correct, that just using nil
> > as the frame makes both the existing frames and
> > future ones use `unspecified' as the face value?
> 
> If you use 'unspecified', yes.

Yes, what I said was that it seems using `unspecified'
for the face attribute value and nil for the frame is
all that's needed.

> > And using _only_ `t' doesn't set the attribute
> > to `unspecified' for the existing frames, right?
> 
> I didn't say to use only t.

I didn't say you did say to use only t.

You said to use both (separately).  My question was
why to bother _also_ using `t'.  IIUC, `t' alone
doesn't help with existing frames (I asked for
confirmation).

And nil alone helps with both existing and future,
AFAICT.  I was asking for confirmation that what I
reported is correct - there's no need to also use
`t'.

> > > We generally don't advertise compatibility shims for obsolete
> > > features, because we want people to stop using them.
> >
> > Is it declared to be obsolete? We generally do
> > let users know when something they use is obsolete,
> > e.g. with a warning.  Do we do that for this case?
> 
> It's considered unsupported.  We just silently support 
> it for compatibility with old versions.

We could still do that but also warn that it's obsolete.

It could help to show a warning that lets you know that
(based on your using nil here) you likely want to use
`unspecified' instead.  Isn't that what we usually do?