unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* window.c: suggested patch window_scroll_pixel_based
@ 2002-12-29  1:59 Martin Fredriksson
  2002-12-30 15:27 ` Richard Stallman
  0 siblings, 1 reply; 4+ messages in thread
From: Martin Fredriksson @ 2002-12-29  1:59 UTC (permalink / raw)


I suggest following patch to window.c (window_scroll_pixel_based), to 
make 'scroll-down' be able to reach the start of the buffer.  This 
patch partly backs out of 1.433 (rms, 2002/12/23).  I apologize if I 
have misunderstood the issue.  I have verified the patch on OpenBSD/X11 
and OSX/Carbon.

Should I have reported this as a bug (to emacs-pretest-bug) instead?

/m

Index: window.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/window.c,v
retrieving revision 1.433
diff -u -r1.433 window.c
--- window.c	23 Dec 2002 18:04:45 -0000	1.433
+++ window.c	29 Dec 2002 01:55:05 -0000
@@ -4149,7 +4149,7 @@

    /* End if we end up at ZV or BEGV.  */
    if ((n > 0 && IT_CHARPOS (it) == ZV)
-      || (n < 0 && IT_CHARPOS (it) == BEGV))
+      || (n < 0 && IT_CHARPOS (it) == CHARPOS (start)))
      {
        if (IT_CHARPOS (it) == ZV)
  	{

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: window.c: suggested patch window_scroll_pixel_based
  2002-12-29  1:59 window.c: suggested patch window_scroll_pixel_based Martin Fredriksson
@ 2002-12-30 15:27 ` Richard Stallman
  2002-12-31  6:27   ` Martin Fredriksson
  2003-01-01 16:45   ` Richard Stallman
  0 siblings, 2 replies; 4+ messages in thread
From: Richard Stallman @ 2002-12-30 15:27 UTC (permalink / raw)
  Cc: emacs-devel

    I suggest following patch to window.c (window_scroll_pixel_based), to 
    make 'scroll-down' be able to reach the start of the buffer.  This 
    patch partly backs out of 1.433 (rms, 2002/12/23).  I apologize if I 
    have misunderstood the issue.  I have verified the patch on OpenBSD/X11 
    and OSX/Carbon.

This problem does not happen for me, and your change reintroduces code
that seems to be entirely wrong as far as I can tell.  Why do you
think it is right to test `start' here?  It appears to me that BEGV
is correct.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: window.c: suggested patch window_scroll_pixel_based
  2002-12-30 15:27 ` Richard Stallman
@ 2002-12-31  6:27   ` Martin Fredriksson
  2003-01-01 16:45   ` Richard Stallman
  1 sibling, 0 replies; 4+ messages in thread
From: Martin Fredriksson @ 2002-12-31  6:27 UTC (permalink / raw)
  Cc: emacs-devel

On måndag, dec 30, 2002, at 16:27 Europe/Stockholm, Richard Stallman 
wrote:

>     I suggest following patch to window.c (window_scroll_pixel_based), 
> to
>     make 'scroll-down' be able to reach the start of the buffer.  This
>     patch partly backs out of 1.433 (rms, 2002/12/23).  I apologize if 
> I
>     have misunderstood the issue.  I have verified the patch on 
> OpenBSD/X11
>     and OSX/Carbon.
>
> This problem does not happen for me, and your change reintroduces code
> that seems to be entirely wrong as far as I can tell.  Why do you
> think it is right to test `start' here?  It appears to me that BEGV
> is correct.

Line 4151--4152:
   if ((n > 0 && IT_CHARPOS (it) == ZV)
       || (n < 0 && IT_CHARPOS (it) == BEGV))

The comparison with ZV seems to be correct since the function
'move_it_to' (called on line 4144) never sets IT_CHARPOS(it) to ZV
unless ZV is visible in the same window.

For backwards movement, however, the function
'move_it_vertically_backword' (called on line 4142) sets
IT_CHARPOS(it) to BEGV when BEGV is less than a screenfull from
current position (as it should).  The comparison "IT_CHARPOS(it) ==
BEGV" now becomes true, and the move is aborted (with
Fsignal(Qbeginning_of_buffer), even though IT_CHARPOS(it) is not
visible.  Since the window is not set until 'set_marker_restricted',
etc, is called on line 4196--, the result is that the window is not
scrolled as it should be.

I believe that it is correct to test IT_CHARPOS(it) == CHARPOS(start)
instead, since that is true when the scroll should not be done (when the
new start position is the same as the current).  From what I can see and
understand, it is perfectly ok for IT_CHARPOS(it) == BEGV, and scrolling
should still be done.

Note that I've only tested with scroll_preserve_screen_position
non-zero.  I do not know if that complicates things.  I must admit I
have a hard time understanding all the issues involved here.

/m

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: window.c: suggested patch window_scroll_pixel_based
  2002-12-30 15:27 ` Richard Stallman
  2002-12-31  6:27   ` Martin Fredriksson
@ 2003-01-01 16:45   ` Richard Stallman
  1 sibling, 0 replies; 4+ messages in thread
From: Richard Stallman @ 2003-01-01 16:45 UTC (permalink / raw)
  Cc: martin

I eventually concluded that you were right,
Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-01-01 16:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-29  1:59 window.c: suggested patch window_scroll_pixel_based Martin Fredriksson
2002-12-30 15:27 ` Richard Stallman
2002-12-31  6:27   ` Martin Fredriksson
2003-01-01 16:45   ` Richard Stallman

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).