Subject: Re: Commit 237244bbd5ce753bcdf79634561de515bd76c687 broke display of composed characters on master

From: Paul Eggert <[email-masked]>
Date: Mon, 11 Jul 2016 16:20:09 +0200

Thanks for tracking that bug down and for the reproducible test case. It 
was a typo in that refactoring commit; sorry about that. I installed the 
attached patch into master to fix things.
>From 8cb5ab5cf48362ea64c6463a8aabc4892c5352f7 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Mon, 11 Jul 2016 16:14:33 +0200
Subject: [PATCH] Fix composition bug caused by off-by-1 typo

* src/xdisp.c (x_produce_glyphs): Fix off-by-one typo when
computing composition glyph (Bug#23938).
---
 src/xdisp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index d5ffb25..14d6f8f 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -27369,8 +27369,8 @@ x_produce_glyphs (struct it *it)
 
 	  eassume (0 < glyph_len); /* See Bug#8512.  */
 	  do
-	    c = COMPOSITION_GLYPH (cmp, --glyph_len);
-	  while (c == '\t' && 0 < glyph_len);
+	    c = COMPOSITION_GLYPH (cmp, glyph_len - 1);
+	  while (c == '\t' && 0 < --glyph_len);
 
 	  bool right_padded = glyph_len < cmp->glyph_len;
 	  for (i = 0; i < glyph_len; i++)
-- 
2.5.5