Subject: Re: bug#29002: it.first_visible_x is erroneously 0 while horizontal scrolling.

From: Keith David Bershatsky <[email-masked]>
Date: Sun, 29 Oct 2017 12:08:37 -0700

For all of the tests referred to in #29002, I have been using Emacs master branch from October 23, 2007.  The _only_ modifications to the code base have been within xdisp.c by adding the function bug-hscroll and the defsubr / DEFSYM in syms_of_xdisp.  No other changes exist.  I am on OSX 10.6.8.

I can build Emacs on Windows XP and see if the results are the same, but it will take about 30 to 45 minutes to download and build anew.

I suspect that this unique situation is not "a feature" and the problem may lie within the need to refresh the screen for non-current lines, since IT "thinks" they are not horizontally scrolled.  However, I thought to myself that this could be a cool feature that I have never seen except in this unique situation.

Keith

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DATE:  [10-29-2017 11:56:05] <29 Oct 2017 20:56:05 +0200>
FROM:  Eli Zaretskii <[email-masked]>
> 
>  scrolling.
> 
> > Date: Sun, 29 Oct 2017 20:29:16 +0200
> > From: Eli Zaretskii <[email-masked]>
> > Cc: [email-masked]
> > 
> > > * A total of 5 screen lines.
> > > 
> > > * Line 1 is the current line.
> > > 
> > > * All 5 lines visually appear to be horizontally scrolled.
> > > 
> > > * Using the revised function bug-hscroll (below), we iterate over each screen line and generate the values for it.first_visible_x and it.vpos.
> > > 
> > > * it.first_visible_x returns as being 0 for each of the 5 screen lines.
> > 
> > This cannot be true: if every line in the window is hscrolled,
> > first_visible_x must be non-zero, right after the call to
> > start_display.
> 
> Forgot to say: I cannot reproduce your results.  In my case,
> first_visible_x is non-zero all the way through the loop, as expected.
> 
> Are you sure this isn't a side effect of one of your other changes?