]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix cursor motion in character-only terminals
authorGregory Heytings <gregory@heytings.org>
Wed, 29 Mar 2023 14:47:32 +0000 (14:47 +0000)
committerGregory Heytings <gregory@heytings.org>
Wed, 29 Mar 2023 14:50:21 +0000 (16:50 +0200)
* src/xdisp.c (get_narrowed_width): Subtract 1 from
window_body_width to account for the '\' line wrapping indication.

src/xdisp.c

index a4d02529563f8eee99b0d15a4370bb9171506f58..880d1b0f1fa16f015c5a0e0fe8ec533ed0fa427a 100644 (file)
@@ -3580,10 +3580,14 @@ init_iterator (struct it *it, struct window *w,
 static int
 get_narrowed_width (struct window *w)
 {
+  bool term = EQ (Fterminal_live_p (Qnil), Qt);
   /* In a character-only terminal, only one font size is used, so we
      can use a smaller factor.  */
-  int fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
-  int width = window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+  int fact = term ? 2 : 3;
+  /* In a character-only terminal, subtract 1 from the width for the
+     '\' line wrapping character.  */
+  int width = window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS)
+    - (term ? 1 : 0);
   return fact * max (1, width);
 }