* bug#59727: Problems with displaying long lines
@ 2022-11-30 17:46 Juri Linkov
2022-11-30 17:55 ` Eli Zaretskii
0 siblings, 1 reply; 5+ messages in thread
From: Juri Linkov @ 2022-11-30 17:46 UTC (permalink / raw)
To: 59727
[A new bug report from bug#56682]
>> 1. after 'M-g TAB' (move-to-column) to 214748364 or more,
>> the display is not updated anymore: moving point to the left
>> from this position shows the cursor, moving point to the right
>> has no visible effect. Is it a hard limit in the display engine?
>> Its hex value is #xccccccc.
>
> Sounds like a possible bug. Does point move? What does "C-x =" say about
> point if you move beyond column 214748364?
Point moves correctly:
point=214748362 of 1135341900 (19%) column=214748361 Hscroll=214748321
point=214748363 of 1135341900 (19%) column=214748362 Hscroll=214748322
point=214748364 of 1135341900 (19%) column=214748363 Hscroll=214748323
point=214748365 of 1135341900 (19%) column=214748364 Hscroll=214748324
point=214748366 of 1135341900 (19%) column=214748365 Hscroll=214748325
but the cursor motion is not visible.
> If you window is auto-hscrolled as result, then there is indeed hard limit:
> the X coordinate of a screen line is an 'int', so MAX_INT divided by the
> pixel-width of your default font is as far as we can go.
Maybe this limitation of auto-hscrolling should be documented?
>> 2. after starting Isearch at a large column number,
>> Emacs hangs up indefinitely, e.g. with
>> 'M-g TAB 10000000 RET C-s' then even C-g doesn't get out.
>> Debugging shows that the problem is in 'isearch-update'
>> where the call to 'pos-visible-in-window-group-p' doesn't return.
>> When this call is removed, the search is instantaneous.
>> (Optimizing lazy-highlight is a separate problem in bug#56815.)
>
> I thought we agreed that calling pos-visible-in-window-p is not a good idea
> in this situation, since it will always think any position is visible?
Does pos-visible-in-window-p fail only on long lines?
>> PS: it seems these problems are not related to the locked narrowing,
>> rather the locked narrowing helped to expose them, so maybe they
>> should be reported in a new separate bug report?
>
> It is unrelated, because handling lines that are both very long and
> truncated on display uses a separate set of display shortcuts, and locked
> narrowing has almost no effect on that.
Ok, therefore a new bug report.
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59727: Problems with displaying long lines
2022-11-30 17:46 bug#59727: Problems with displaying long lines Juri Linkov
@ 2022-11-30 17:55 ` Eli Zaretskii
2022-11-30 18:11 ` Juri Linkov
2022-11-30 18:17 ` Eli Zaretskii
0 siblings, 2 replies; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-30 17:55 UTC (permalink / raw)
To: Juri Linkov; +Cc: 59727
> From: Juri Linkov <juri@linkov.net>
> Date: Wed, 30 Nov 2022 19:46:37 +0200
>
> [A new bug report from bug#56682]
>
> >> 1. after 'M-g TAB' (move-to-column) to 214748364 or more,
> >> the display is not updated anymore: moving point to the left
> >> from this position shows the cursor, moving point to the right
> >> has no visible effect. Is it a hard limit in the display engine?
> >> Its hex value is #xccccccc.
> >
> > Sounds like a possible bug. Does point move? What does "C-x =" say about
> > point if you move beyond column 214748364?
>
> Point moves correctly:
OK, then the new shortcuts in Emacs 29 for moving by columns in very long
and truncated lines do work reasonably.
> but the cursor motion is not visible.
>
> > If you window is auto-hscrolled as result, then there is indeed hard limit:
> > the X coordinate of a screen line is an 'int', so MAX_INT divided by the
> > pixel-width of your default font is as far as we can go.
>
> Maybe this limitation of auto-hscrolling should be documented?
We could document them, indeed. But where? maybe in PROBLEMS?
> >> 2. after starting Isearch at a large column number,
> >> Emacs hangs up indefinitely, e.g. with
> >> 'M-g TAB 10000000 RET C-s' then even C-g doesn't get out.
> >> Debugging shows that the problem is in 'isearch-update'
> >> where the call to 'pos-visible-in-window-group-p' doesn't return.
> >> When this call is removed, the search is instantaneous.
> >> (Optimizing lazy-highlight is a separate problem in bug#56815.)
> >
> > I thought we agreed that calling pos-visible-in-window-p is not a good idea
> > in this situation, since it will always think any position is visible?
>
> Does pos-visible-in-window-p fail only on long lines?
Not long, truncated ones. It doesn't understand that positions that are to
the left or to the right of the viewport are not "visible".
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59727: Problems with displaying long lines
2022-11-30 17:55 ` Eli Zaretskii
@ 2022-11-30 18:11 ` Juri Linkov
2022-11-30 18:38 ` Eli Zaretskii
2022-11-30 18:17 ` Eli Zaretskii
1 sibling, 1 reply; 5+ messages in thread
From: Juri Linkov @ 2022-11-30 18:11 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59727
>> but the cursor motion is not visible.
>>
>> > If you window is auto-hscrolled as result, then there is indeed hard limit:
>> > the X coordinate of a screen line is an 'int', so MAX_INT divided by the
>> > pixel-width of your default font is as far as we can go.
>>
>> Maybe this limitation of auto-hscrolling should be documented?
>
> We could document them, indeed. But where? maybe in PROBLEMS?
Not sure how to document this limitation because it still works
to some extent: when lines are not truncated, and point can be
moved to the end of a 1 GB buffer, then after toggling line truncation
while point is at the end of the buffer, cursor motion is shown
correctly with auto-hscrolling near the end of the buffer.
>> >> 2. after starting Isearch at a large column number,
>> >> Emacs hangs up indefinitely, e.g. with
>> >> 'M-g TAB 10000000 RET C-s' then even C-g doesn't get out.
>> >> Debugging shows that the problem is in 'isearch-update'
>> >> where the call to 'pos-visible-in-window-group-p' doesn't return.
>> >> When this call is removed, the search is instantaneous.
>> >> (Optimizing lazy-highlight is a separate problem in bug#56815.)
>> >
>> > I thought we agreed that calling pos-visible-in-window-p is not a good idea
>> > in this situation, since it will always think any position is visible?
>>
>> Does pos-visible-in-window-p fail only on long lines?
>
> Not long, truncated ones. It doesn't understand that positions that are to
> the left or to the right of the viewport are not "visible".
I don't know how it works but the docstring of pos-visible-in-window-p
says:
If POS is only out of view because of horizontal scrolling, return non-nil.
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59727: Problems with displaying long lines
2022-11-30 17:55 ` Eli Zaretskii
2022-11-30 18:11 ` Juri Linkov
@ 2022-11-30 18:17 ` Eli Zaretskii
1 sibling, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-30 18:17 UTC (permalink / raw)
To: juri; +Cc: 59727
> Cc: 59727@debbugs.gnu.org
> Date: Wed, 30 Nov 2022 19:55:36 +0200
> From: Eli Zaretskii <eliz@gnu.org>
>
> > > the X coordinate of a screen line is an 'int', so MAX_INT divided by the
> > > pixel-width of your default font is as far as we can go.
> >
> > Maybe this limitation of auto-hscrolling should be documented?
>
> We could document them, indeed. But where? maybe in PROBLEMS?
Or we could bite the bullet and lift the restriction: make current_x be a
ptrdiff_t, and then audit all the gazillion places where we make
calculations with the X coordinate and make sure we use ptrdiff_t there.
Probably not for emacs-29.
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59727: Problems with displaying long lines
2022-11-30 18:11 ` Juri Linkov
@ 2022-11-30 18:38 ` Eli Zaretskii
0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-30 18:38 UTC (permalink / raw)
To: Juri Linkov; +Cc: 59727
> From: Juri Linkov <juri@linkov.net>
> Cc: 59727@debbugs.gnu.org
> Date: Wed, 30 Nov 2022 20:11:14 +0200
>
> >> Does pos-visible-in-window-p fail only on long lines?
> >
> > Not long, truncated ones. It doesn't understand that positions that are to
> > the left or to the right of the viewport are not "visible".
>
> I don't know how it works but the docstring of pos-visible-in-window-p
> says:
>
> If POS is only out of view because of horizontal scrolling, return non-nil.
That's what I said, no?
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-11-30 18:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-30 17:46 bug#59727: Problems with displaying long lines Juri Linkov
2022-11-30 17:55 ` Eli Zaretskii
2022-11-30 18:11 ` Juri Linkov
2022-11-30 18:38 ` Eli Zaretskii
2022-11-30 18:17 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).