Subject: bug#64759: Broken faces

From: Eli Zaretskii <[email-masked]>
Date: Fri, 21 Jul 2023 21:35:08 +0300

> From: Juri Linkov <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Fri, 21 Jul 2023 20:51:57 +0300
> 
> >> Thanks, I confirm that '((t nil)) solves this problem.
> >> If a nil value can't be supported for faces, then
> >> let's use '((t nil)).
> >
> > What do you expect this to produce for the face attributes?
> 
> Let's see: when the definition is
> 
>   (defface display-time-date-and-time
>     nil
>     "Face for `display-time-format'."
>     :group 'mode-line-faces
>     :version "30.1")
> 
> then the customization buffer is
> 
>   Hide display-time-date-and-time face: [sample]
>       State : NO CUSTOMIZATION DATA; not intended to be customized.
>      Face for ‘display-time-format’.
>      -- Empty face --
>      Show All Attributes
> 
> But when the definition is
> 
>   (defface display-time-date-and-time
>     '((t nil))
>     "Face for `display-time-format'."
>     :group 'mode-line-faces
>     :version "30.1")
> 
> the customization buffer is
> 
>   Hide display-time-date-and-time face: [sample]
>       State : STANDARD.
>      Face for ‘display-time-format’.
>      -- Empty face --
>      Show All Attributes
> 
> Looks nice.  No strange error message about not intended to be customized.

That's not what I asked.  I asked about the face attributes.

IOW, isn't

  (defface display-time-date-and-time
    '((t nil))
    "Face for `display-time-format'."
    :group 'mode-line-faces
    :version "30.1")

the same as

  (defface display-time-date-and-time
    '((t (:inherit default)))
    "Face for `display-time-format'."
    :group 'mode-line-faces
    :version "30.1")

?