summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>1992-02-10 08:12:22 +0000
committerJim Blandy <jimb@redhat.com>1992-02-10 08:12:22 +0000
commita9764248b799e25c9d3d7143b28315182debe4f5 (patch)
tree5d76cef4dcddbdfde87e2c56c011a6537fa195c4 /src
parent43a2e52c06534ecdb7c5240c8c402b50647f31cc (diff)
downloademacs-a9764248b799e25c9d3d7143b28315182debe4f5.tar.gz
emacs-a9764248b799e25c9d3d7143b28315182debe4f5.tar.bz2
emacs-a9764248b799e25c9d3d7143b28315182debe4f5.zip
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/dispnew.c11
-rw-r--r--src/indent.c6
2 files changed, 12 insertions, 5 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 31e5590f35d..71253511546 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -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;
diff --git a/src/indent.c b/src/indent.c
index a48877d84ce..f87ca13192a 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -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