Subject: Re: bug#64347: 30.0.50; Some customize faces shown as edited with -Q

From: Mauro Aranda <[email-masked]>
Date: Sat, 8 Jul 2023 18:32:15 -0300

Eli Zaretskii <[email-masked]> writes:

 > Thanks.
 >
 > Can you show a patch for the two bugs you've succeeded to identify?

Not yet.  I wrote a working post-filter for the :box property, but
there are still some faces that show with the EDITED state.

Since there are both ways to specify the same information for the
:line-width value, there's always a chance of not sending the expected
format to face-spec-match-p.

Let's say we have (:line-width 1).  Then the pre-filter converts it into
(:line-width (1 . 1)), and then the post-filter should convert it back
to (:line-width 1), and that works.

But if we have (:line-width (1 . 1)), the pre-filter does nothing, and
the post-filter will transform it into (:line-width 1), and that way
specs won't match.

So sometimes we want to post-filter to (:line-width WIDTH) and sometimes
to (VWIDTH . HWIDTH) and there's currently not enough information to do
that, or at least I missed it.

 > Did you make any progress with the one bug that's left after the other
 > two are fixed?

I did find that face-attr-match-p uses equal even with properties like
:underline and :box that can have plists as values.  But I haven't tried
to fix it, because I got frustrated with the post-filter thing.