changeset 59700:c401b93db575

* window.c (Fpos_visible_in_window_p): Simplify return value for partially visible rows. (window_scroll_pixel_based): Adapt to that change.
author Kim F. Storm <storm@cua.dk>
date Sun, 23 Jan 2005 13:13:03 +0000
parents 6491ad700699
children 5f125540565b
files src/window.c
diffstat 1 files changed, 11 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/window.c	Sun Jan 23 13:11:00 2005 +0000
+++ b/src/window.c	Sun Jan 23 13:13:03 2005 +0000
@@ -333,11 +333,10 @@
 POS defaults to point in WINDOW; WINDOW defaults to the selected window.
 
 If POS is visible, return t if PARTIALLY is nil; if PARTIALLY is non-nil,
-return value is a list (X Y FULLY [RTOP RBOT]) where X and Y are the pixel
-coordinates relative to the top left corner of the window, and FULLY is t if the
-character after POS is fully visible and nil otherwise.  If FULLY is nil,
-RTOP and RBOT are the number of pixels invisible at the top and bottom row
-of the window.  */)
+return value is a list (X Y PARTIAL) where X and Y are the pixel coordinates
+relative to the top left corner of the window. PARTIAL is nil if the character
+after POS is fully visible; otherwise it is a cons (RTOP . RBOT) where RTOP
+and RBOT are the number of pixels invisible at the top and bottom of the row.  */)
      (pos, window, partially)
      Lisp_Object pos, window, partially;
 {
@@ -376,12 +375,10 @@
   if (!NILP (in_window) && !NILP (partially))
     in_window = Fcons (make_number (x),
 		       Fcons (make_number (y),
-			      Fcons (fully_p ? Qt : Qnil,
-				     (fully_p
-				      ? Qnil
-				      : Fcons (make_number (rtop),
-					       Fcons (make_number (rbot),
-						      Qnil))))));
+			      Fcons ((fully_p ? Qnil
+				     : Fcons (make_number (rtop),
+					      make_number (rbot))),
+				     Qnil)));
   return in_window;
 }
 
@@ -4578,7 +4575,7 @@
     }
   else if (auto_window_vscroll_p)
     {
-      if (NILP (XCAR (XCDR (XCDR (tem)))))
+      if (tem = XCAR (XCDR (XCDR (tem))), CONSP (tem))
 	{
 	  int px;
 	  int dy = WINDOW_FRAME_LINE_HEIGHT (w);
@@ -4586,13 +4583,13 @@
 	    dy = window_box_height (w) - next_screen_context_lines * dy;
 	  dy *= n;
 
-	  if (n < 0 && (px = XINT (Fnth (make_number (3), tem))) > 0)
+	  if (n < 0 && (px = XINT (XCAR (tem))) > 0)
 	    {
 	      px = max (0, -w->vscroll - min (px, -dy));
 	      Fset_window_vscroll (window, make_number (px), Qt);
 	      return;
 	    }
-	  if (n > 0 && (px = XINT (Fnth (make_number (4), tem))) > 0)
+	  if (n > 0 && (px = XINT (XCDR (tem))) > 0)
 	    {
 	      px = max (0, -w->vscroll + min (px, dy));
 	      Fset_window_vscroll (window, make_number (px), Qt);