changeset 543:937bccff8155

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Mon, 10 Feb 1992 08:12:22 +0000
parents 119ba212b686
children 054dfe2f6327
files src/dispnew.c src/indent.c
diffstat 2 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/dispnew.c	Mon Feb 10 05:20:54 1992 +0000
+++ b/src/dispnew.c	Mon Feb 10 08:12:22 1992 +0000
@@ -948,8 +948,15 @@
   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;
--- a/src/indent.c	Mon Feb 10 05:20:54 1992 +0000
+++ b/src/indent.c	Mon Feb 10 08:12:22 1992 +0000
@@ -373,9 +373,9 @@
    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