emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "... the window start at a meaningless point within a line."


From: Alan Mackenzie
Subject: Re: "... the window start at a meaningless point within a line."
Date: Sun, 18 Oct 2015 14:53:56 +0000
User-agent: Mutt/1.5.23 (2014-03-12)

Hello, Eli.

On Sat, Oct 17, 2015 at 04:31:05PM +0300, Eli Zaretskii wrote:
> > Date: Sat, 17 Oct 2015 15:34:44 +0300
> > From: Eli Zaretskii <address@hidden>
> > Cc: address@hidden

> > So now I think that the problem can be solved as follows:

> >   . if Fvertical_motion's code without changes ends up before the
> >     first newline that follows the window-start, you don't need to do
> >     anything, because Fvertical_motion does exactly what you want in
> >     that case

> >   . otherwise Fvertical_motion will either end up on the screen line
> >     before the goal, or will be on the right screen line, but to the
> >     right of the goal column, and a correction should be applied by
> >     moving point to the left

> Is the following a correct definition of when Fvertical_motion
> overshoots, i.e. lands one line below (for LINES > 0) the correct one:
> when the offset between the "actual" window-start and the preceding
> "xdisp" BOL is greater than the X coordinate of the last character of
> the 1st physical line in the window.

Disentangling the words, what I think you're saying is that ....

   nlines = 3
8. B-------WS-------------A-------L1-------------A2----\nC--------C2--------C3
   <---N--->                      <---------X--------->
(a)                           ^                                   it,T
(b)                                  ^                            it        T


   nlines = 3
9. B-----------------WS---A-----------------L1---A2----\nC--------C2--------C3
   <--------N-------->                      <----X---->
(a)                           ^                                   it,T
(b)                                            ^                  it        T

.... an overshoot occurs when N > X.  I'm assuming that by "X coordinate
of ..." you're meaning the offset from an _actual_ BOL.

I don't see at all that this is the case.  In diagram 8, N < X, and in
diagram 9, N > X.  In 8(a) and 9(a) Fvertical_motion hits the target
directly.  In 8(b) and 9(b), there is an "undershoot" rather than an
"overshoot".

The critical factor is not whether N > X; it's the precise positioning
of point with respect to the actual and xdisp BOLs on the first text
line.

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]