From da2512f24c5772476671202bf6106f63983e22e4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 2 Jul 2016 16:56:36 +0300 Subject: [PATCH] Fix cursor positioning on TTY frames after stretch glyph * src/term.c (append_glyph, append_composite_glyph) (append_glyphless_glyph): Set the avoid_cursor_p and multibyte_p members of the produced 'struct glyph'. Fixes cursor positioning on the first character after a stretch glyph produced from line-prefix, wrap-prefix, etc. on TTY frames. --- src/term.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/term.c b/src/term.c index 7e63a0cf634..81908b370a5 100644 --- a/src/term.c +++ b/src/term.c @@ -1496,6 +1496,8 @@ append_glyph (struct it *it) glyph->pixel_width = 1; glyph->u.ch = it->char_to_display; glyph->face_id = it->face_id; + glyph->avoid_cursor_p = it->avoid_cursor_p; + glyph->multibyte_p = it->multibyte_p; glyph->padding_p = i > 0; glyph->charpos = CHARPOS (it->position); glyph->object = it->object; @@ -1692,8 +1694,10 @@ append_composite_glyph (struct it *it) glyph->slice.cmp.to = it->cmp_it.to - 1; } + glyph->avoid_cursor_p = it->avoid_cursor_p; + glyph->multibyte_p = it->multibyte_p; glyph->face_id = it->face_id; - glyph->padding_p = 0; + glyph->padding_p = false; glyph->charpos = CHARPOS (it->position); glyph->object = it->object; if (it->bidi_p) @@ -1776,8 +1780,10 @@ append_glyphless_glyph (struct it *it, int face_id, const char *str) return; glyph->type = CHAR_GLYPH; glyph->pixel_width = 1; + glyph->avoid_cursor_p = it->avoid_cursor_p; + glyph->multibyte_p = it->multibyte_p; glyph->face_id = face_id; - glyph->padding_p = 0; + glyph->padding_p = false; glyph->charpos = CHARPOS (it->position); glyph->object = it->object; if (it->bidi_p) -- 2.39.5