So this patch changes long-standing behavior in non-trivial ways, and
I'm not sure what it can break, after so many years.  I understand
that it makes certain customizations in whitespace-mode look better on
display in some cases, but display-tables are used in Emacs not just
in whitespace-mode.
Yes, You are right. In fact, I'm not sure what it can break either. So I have
used this patch locally for about one year with self-compiled emacs29.
Fortunately, it didn't bring any side effects for me.  However, of course,
I cannot cover every function and every package for emacs.

It is really fundamental code. On the other hand, it is also annoying to
use whitespace-mode with unaligned tabs-mark. Would you be happy
if I add an option for this behavior like 'display-vector-limit-tab' which
defaults to nil? Finally, it won't change default behavior for all emacsers
and anybody like me who has trouble with this issue can turn it on in
their configuration file so they can test if it has side effects for them or
they can share this fix.


发件人: Eli Zaretskii <eliz@gnu.org>
发送时间: 2024年1月14日 10:14
收件人: Young Arto <jifengsi@hotmail.com>
抄送: 68441@debbugs.gnu.org <68441@debbugs.gnu.org>
主题: Re: bug#68441: Fix the unaligned tab in whitespace mode
 
> From: Young Arto <jifengsi@hotmail.com>
> Date: Sat, 13 Jan 2024 12:23:27 +0000
> msip_labels:
>
> There is a bug in whitespace mode which used the display table to
> replace a tab with a tab-mark vector.
>
> If we has a line like this:
> ------
> 123\t5678
> ------
>
> If tab-width is 4 and tab-mark is [?> ?\t],
> The line will be displayed as following:
> (we use '^' to represent tab extra spaces)
> ------
> 123>^^^^5678
> ------
>
> However, it should be displayed as:
> ------
> 123>5678
> ------

I'm not sure I agree.  We never display a TAB as nothing, no matter if
it comes from a display vector or from a buffer or from any other
source.

So this patch changes long-standing behavior in non-trivial ways, and
I'm not sure what it can break, after so many years.  I understand
that it makes certain customizations in whitespace-mode look better on
display in some cases, but display-tables are used in Emacs not just
in whitespace-mode.

Thanks.