Subject: bug#64988: closed (Re: bug#64988: 30.0.50; move-to-column can move across lines if there is a text with display property)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 02 Sep 2023 16:40:03 +0000

Your bug report

#64988: 30.0.50; move-to-column can move across lines if there is a text with display property

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
64988: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64988
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#64988: 30.0.50; move-to-column can move across lines if there is a text with display property
From: Stefan Kangas <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 2 Sep 2023 09:38:50 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> tags 64988 notabug wontfix
> thanks
[...]
> So I'm sorry, but unless someone comes with an idea for how to handle
> these situations in a sensible way (and I thought long and hard about
> it, but couldn't find such ideas), this will remain a limitation of
> move-to-column, and one of the complications introduced by display
> strings with embedded newlines in general.  The affected packages will
> have to adapt to this change in some ways.  Since the original code
> also produced incorrect results, just different incorrect results, I
> don't see this as a serious problem, just as a bug that wasn't fixed,
> but changed its buggy behavior.

I'm therefore closing this bug report.

Subject: 30.0.50; move-to-column can move across lines if there is a text with display property
From: Herman, Géza <[email-masked]>
To: [email-masked]
Date: Tue, 1 Aug 2023 12:53:57 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

If there is a text with display property in a buffer, then 
move-to-column can move across lines.

Repro:
* emacs -Q
* in the scratch buffer, move the cursor to the top, and put an empty 
line at the beginning of the buffer
* execute 'M-: (put-text-property 1 2 'display "line\n")' (note: it's 
likely that the "\n" causes the problem)
* notice that the empty line becomes "line"
* while the cursor still on the first line, execute 'M-: (move-to-column 
20)'

The last command will move the cursor to the next line at column 16, 
instead of staying at the first line.

Note: I noticed this problem while using this package: 
https://github.com/jdtsmith/indent-bars.

The problem doesn't happen with emacs 28, this is the commit that 
introduced the issue:

4243747b1b8c3b7e3463822804b32e83febe2878 Fix 'current-column' in the 
presence of display strings