emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 0127118: Fix type-checking bug in vertical-motion


From: Paul Eggert
Subject: master 0127118: Fix type-checking bug in vertical-motion
Date: Thu, 16 Apr 2020 12:24:53 -0400 (EDT)

branch: master
commit 0127118c2592ee5103cc36be5aaed0c9443ae82f
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Fix type-checking bug in vertical-motion
    
    * src/indent.c (Fvertical_motion): Fix bug where the type of lcols
    was checked too late.
---
 src/indent.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/indent.c b/src/indent.c
index dd81b98..06f11a2 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2091,19 +2091,17 @@ whether or not it is currently displayed in some 
window.  */)
   struct it it;
   struct text_pos pt;
   struct window *w;
-  Lisp_Object lcols;
+  Lisp_Object lcols = Qnil;
   void *itdata = NULL;
   ptrdiff_t count = SPECPDL_INDEX ();
 
   /* Allow LINES to be of the form (HPOS . VPOS) aka (COLUMNS . LINES).  */
-  bool lcols_given = CONSP (lines);
-  if (lcols_given)
+  if (CONSP (lines))
     {
       lcols = XCAR (lines);
+      CHECK_NUMBER (lcols);
       lines = XCDR (lines);
     }
-  else
-    lcols = make_fixnum (0);   /* shut up stupid GCC warning */
 
   CHECK_FIXNUM (lines);
   w = decode_live_window (window);
@@ -2281,9 +2279,9 @@ whether or not it is currently displayed in some window.  
*/)
 
          overshoot_handled = 1;
        }
-      if (lcols_given)
+      if (!NILP (lcols))
        to_x =
-         window_column_x (w, window, extract_float (lcols), lcols)
+         window_column_x (w, window, XFLOATINT (lcols), lcols)
          + lnum_pixel_width;
       if (nlines <= 0)
        {
@@ -2334,7 +2332,7 @@ whether or not it is currently displayed in some window.  
*/)
       /* Move to the goal column, if one was specified.  If the window
         was originally hscrolled, the goal column is interpreted as
         an addition to the hscroll amount.  */
-      if (lcols_given)
+      if (!NILP (lcols))
        {
          move_it_in_display_line (&it, ZV, first_x + to_x, MOVE_TO_X);
          /* If we find ourselves in the middle of an overlay string



reply via email to

[Prev in Thread] Current Thread [Next in Thread]