aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2011-05-25 10:26:35 +0900
committerKenichi Handa2011-05-25 10:26:35 +0900
commitf16d983703a68c21ae5cf52f49d4aafa09ca31ce (patch)
treeed72432ce7e1ffa0c4c35a88d870536e2454fefe
parent02bd54507635629c9d35bc2193a0cfa3567309c6 (diff)
downloademacs-f16d983703a68c21ae5cf52f49d4aafa09ca31ce.tar.gz
emacs-f16d983703a68c21ae5cf52f49d4aafa09ca31ce.zip
xdisp.c (get_next_display_element): Set correct it->face_id for a static composition.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 774bd4235ac..cdc8ed8999c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-05-25 Kenichi Handa <handa@m17n.org>
2
3 * xdisp.c (get_next_display_element): Set correct it->face_id for
4 a static composition.
5
12011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 62011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 7
3 * dispnew.c (scrolling_window): Don't exclude the case that the 8 * dispnew.c (scrolling_window): Don't exclude the case that the
diff --git a/src/xdisp.c b/src/xdisp.c
index 1f4c829ce94..0f21c82e1f1 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5922,9 +5922,21 @@ get_next_display_element (it)
5922 int pos = (it->s ? -1 5922 int pos = (it->s ? -1
5923 : STRINGP (it->string) ? IT_STRING_CHARPOS (*it) 5923 : STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
5924 : IT_CHARPOS (*it)); 5924 : IT_CHARPOS (*it));
5925 int c;
5926
5927 if (it->what == IT_CHARACTER)
5928 c = it->char_to_display;
5929 else
5930 {
5931 struct composition *cmp = composition_table[it->cmp_it.id];
5932 int i;
5925 5933
5926 it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, pos, 5934 c = ' ';
5927 it->string); 5935 for (i = 0; i < cmp->glyph_len; i++)
5936 if ((c = COMPOSITION_GLYPH (cmp, i)) != '\t')
5937 break;
5938 }
5939 it->face_id = FACE_FOR_CHAR (it->f, face, c, pos, it->string);
5928 } 5940 }
5929 } 5941 }
5930#endif 5942#endif