[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65015: 29.1; align-to on wrapped line regression
From: |
Eli Zaretskii |
Subject: |
bug#65015: 29.1; align-to on wrapped line regression |
Date: |
Wed, 02 Aug 2023 17:40:13 +0300 |
> From: Axel Forsman <axelsfor@gmail.com>
> Date: Wed, 2 Aug 2023 15:22:35 +0200
>
> I noticed that the interpretation of the hpos given to the :align-to
> space specification property changed in Emacs 29.1 compared to 28.2,
> without it being documented anywhere. In version 28 it counts relative
> to the visual start of the line, whereas in version 29 it starts at the
> logical start of the line.
>
> That is, the following MWE exhibits different visual behavior in Emacs
> 28 contra 29:
>
> (insert
> (concat
> "\n"
> (make-string (round (* 1.25 (window-text-width))) ?x)
> (propertize " " 'display `(space :align-to ,(round
> (window-text-width) 2)))
> "foo\n\n"))
>
> (In 28 the text "foo" is centered correctly by the space. In 29 the
> space has zero-width and no effect.)
>
> The previous behavior makes more sense in the context of section 41.16.3
> Pixel Specification for Spaces in the Emacs manual, and it would be
> quite the breaking change so I am hoping it was unintentional.
It was intentional, since :align-to counts columns, and columns in
Emacs continue being counted in continuation lines, they don't start
from zero again at the point where the line wraps. Cf current-column
and move-to-column. What you seem to expect would make it impossible
to wrap lines with :align-to space display specs without losing the
alignment when the line wraps.
So this change fixed a bug, and it is therefore here to stay. That is
also the reason why it is not in NEWS: we don't include bug fixes
there.