From: Paul Eggert Date: Thu, 16 Apr 2020 16:22:42 +0000 (-0700) Subject: Fix type-checking bug in vertical-motion X-Git-Tag: emacs-28.0.90~7568 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0127118c2592ee5103cc36be5aaed0c9443ae82f;p=emacs.git Fix type-checking bug in vertical-motion * src/indent.c (Fvertical_motion): Fix bug where the type of lcols was checked too late. --- diff --git a/src/indent.c b/src/indent.c index dd81b983d48..06f11a251e6 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