Subject: bug#60580: 29.0.60; crash in xdisp.c with modus theme and display-fill-column-indicator

From: Eli Zaretskii <[email-masked]>
Date: Fri, 06 Jan 2023 09:12:17 +0200

> From: Protesilaos Stavrou <[email-masked]>
> Cc: [email-masked]
> Date: Fri, 06 Jan 2023 06:01:05 +0200
> 
> >   ;;;;; display-fill-column-indicator-mode
> >       `(fill-column-indicator ((,class :height 1 :background ,bg-region :foreground ,bg-region)))
> >
> > I have no idea what is ":height 1" about, but I think it's wrong and
> > should be replaced with some reasonable value.
> 
> The ":height 1" has been there for many versions and never caused a
> problem of this sort.

I'm guessing that this is because almost no one builds Emacs with the
assertions enabled (--enable-testing=yes at configure time).  I do,
but the problem doesn't happen on my system, so I haven't seen it,
either.

> The reason it is like this is to make the indicator a contiguous
> line that is not affected by variations in font heights and/or a high
> 'line-spacing' value.  Otherwise the indicator can appear as a dashed
> line.

Why do you assume that ":height 1" will avoid this problem?  I think
you are just using some undocumented side effect of the
implementation, as there's no reason to believe using such small
height of the face can solve the problem with occasional 1-pixel gaps
in the fill-column indicator.

But let's first see if my latest changes prevent the assertion
violations even without changing the themed faces.