changeset 21335:8f9e7600c250

(redisplay_window): Fix computing pos from last_point.
author Richard M. Stallman <rms@gnu.org>
date Thu, 02 Apr 1998 04:40:52 +0000
parents 66b3b9fe3e3c
children e78bc1ffd88d
files src/xdisp.c
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Thu Apr 02 04:36:00 1998 +0000
+++ b/src/xdisp.c	Thu Apr 02 04:40:52 1998 +0000
@@ -2033,14 +2033,16 @@
 	{
 	  int last_point = XFASTINT (w->last_point);
 	  int last_point_byte = CHAR_TO_BYTE (last_point);
+	  int tab_offset = (pos_tab_offset (w, last_point, last_point_byte)
+			    - (last_point_x + hscroll - !! hscroll));
 
 	  pos = *compute_motion (last_point, last_point_y, last_point_x, 0,
 				 PT, height,
-				 /* BUG FIX: See the comment of
+				 /* BUG FIX: See the comment of	
 				    Fpos_visible_in_window_p (window.c).  */
 				 - (1 << (BITS_PER_SHORT - 1)),
 				 width, hscroll,
-				 pos_tab_offset (w, last_point, last_point_byte),
+				 tab_offset,
 				 w);
 	}
       else
@@ -3048,9 +3050,10 @@
 }
 
 /* Return the column of position POS / POS_BYTE in window W's buffer.
-   The result is rounded down to a multiple of the internal width of W.
-   This is the amount of indentation of position POS
-   that is not visible in its horizontal position in the window.  */
+   When used on the character at the beginning of a line,
+   starting at column 0, this says how much to subtract from
+   the column position of any character in the line
+   to get its horizontal position on the screen.  */
 
 static int
 pos_tab_offset (w, pos, pos_byte)