Commit a9764248 authored by Jim Blandy's avatar Jim Blandy
Browse files

*** empty log message ***

parent 43a2e52c
......@@ -948,8 +948,15 @@ direct_output_forward_char (n)
register SCREEN_PTR screen = selected_screen;
register struct window *w = XWINDOW (selected_window);
/* Avoid losing if cursor is in invisible text off left margin */
if (XINT (w->hscroll) && SCREEN_CURSOR_X (screen) == XFASTINT (w->left))
/* Avoid losing if cursor is in invisible text off left margin
or about to go off either side of window. */
if ((SCREEN_CURSOR_X (screen) == XFASTINT (w->left)
&& (XINT (w->hscroll) || n < 0))
|| (n > 0
&& (SCREEN_CURSOR_X (screen) + 1
>= (XFASTINT (w->left) + XFASTINT (w->width)
- (XFASTINT (w->width) < SCREEN_WIDTH (screen))
- 1))))
return 0;
SCREEN_CURSOR_X (screen) += n;
......
......@@ -373,9 +373,9 @@ struct position val_compute_motion;
compute_motion uses this to handle continuation lines and such.
HSCROLL is the number of columns not being displayed at the left
margin; this is usually taken from a window's hscroll member.
TAB_OFFSET is a mysterious value, perhaps the number of columns of
the first tab that aren't being displayed, perhaps because of a
continuation line or something.
TAB_OFFSET is the number of columns of the first tab that aren't
being displayed, perhaps because of a continuation line or
something.
compute_motion returns a pointer to a struct position. The bufpos
member gives the buffer position at the end of the scan, and hpos
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment