Mercurial > emacs
changeset 352:cd7ffb1fcb45
*** empty log message ***
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Thu, 25 Jul 1991 13:21:16 +0000 |
parents | 5729b1cc3942 |
children | 38d331b3a0b8 |
files | src/dispnew.c |
diffstat | 1 files changed, 19 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispnew.c Thu Jul 25 05:31:52 1991 +0000 +++ b/src/dispnew.c Thu Jul 25 13:21:16 1991 +0000 @@ -534,8 +534,8 @@ } else { - /* Since the overlap is always less than SIZE, we can always - safely do this loop once. */ + /* Since TO - FROM >= 64, the overlap is less than SIZE, + so we can always safely do this loop once. */ while (endt > to) { endt -= (to - from); @@ -584,7 +584,7 @@ } #endif -/* Rotate a vector of SIZE bytes, by DISTANCE bytes. +/* Rotate a vector of SIZE bytes right, by DISTANCE bytes. DISTANCE may be negative. */ static void @@ -1248,20 +1248,31 @@ in the buffer, or at the top of the window; both of these assure us that the character at bufp starts flush with the beginning of the line. */ - int i; + int start_line; + +#if 0 + /* Unfortunately, the bufp array doesn't seem to be updated properly. */ /* Only works for the leftmost window on a line. bufp is useless for the others. */ if (window_left == 0) { - for (i = line; i > XFASTINT (window->top); i--) - if (FETCH_CHAR (bufp[i]-1) == '\n') + for (start_line = line; start_line > 0; start_line--) + if (FETCH_CHAR (bufp[XFASTINT (window->top) + start_line]-1) + == '\n') break; + posn = bufp[XFASTINT (window->top) + start_line]; + } + else +#endif + { + start_line = 0; + posn = Fmarker_position (window->start); } posn - = compute_motion (bufp[i], i, window_left, - ZV, col, line, + = compute_motion (posn, start_line, window_left, + ZV, line, col - window_left, window_width, XINT (window->hscroll), 0) ->bufpos; }