From e6518fc8f5afca5d71582aabb089147cba583966 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 17 Jan 2015 20:32:16 +0200 Subject: [PATCH] Fix display of images in R2L screen lines src/xdisp.c (produce_image_glyph): Fix display of images in R2L screen lines: prepend the new glyph to the ones already there instead of appending it. --- src/ChangeLog | 6 ++++++ src/xdisp.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index a90cc41e601..ad4a85ae487 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2015-01-17 Eli Zaretskii + + * xdisp.c (produce_image_glyph): Fix display of images in R2L + screen lines: prepend the new glyph to the ones already there + instead of appending it. + 2015-01-14 Eli Zaretskii * w32fns.c (w32_set_title_bar_text): New function, including diff --git a/src/xdisp.c b/src/xdisp.c index a1cc286512b..b1125d324c2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -25428,6 +25428,15 @@ produce_image_glyph (struct it *it) enum glyph_row_area area = it->area; glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; + if (it->glyph_row->reversed_p) + { + struct glyph *g; + + /* Make room for the new glyph. */ + for (g = glyph - 1; g >= it->glyph_row->glyphs[it->area]; g--) + g[1] = *g; + glyph = it->glyph_row->glyphs[it->area]; + } if (glyph < it->glyph_row->glyphs[area + 1]) { glyph->charpos = CHARPOS (it->position); -- 2.39.5