changeset 17183:00252a78ce4f

(GLYPH_FOLLOW_ALIASES): Assure that the resulting G contains valid character code.
author Kenichi Handa <handa@m17n.org>
date Tue, 18 Mar 1997 23:31:34 +0000
parents 47bfc66eb7f1
children caab9110ee07
files src/disptab.h
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/disptab.h	Tue Mar 18 23:31:34 1997 +0000
+++ b/src/disptab.h	Tue Mar 18 23:31:34 1997 +0000
@@ -77,10 +77,14 @@
 
 /* Follow all aliases for G in the glyph table given by (BASE,
    LENGTH), and set G to the final glyph.  */
-#define GLYPH_FOLLOW_ALIASES(base, length, g)				\
-  while (GLYPH_ALIAS_P ((base), (length), (g)))				\
-    (g) = GLYPH_ALIAS ((base), (g));
-  
+#define GLYPH_FOLLOW_ALIASES(base, length, g)		\
+  do {							\
+    while (GLYPH_ALIAS_P ((base), (length), (g)))	\
+      (g) = GLYPH_ALIAS ((base), (g));			\
+    if (!GLYPH_CHAR_VALID_P (FAST_GLYPH_CHAR (g)))	\
+      g = FAST_MAKE_GLYPH (' ', FAST_GLYPH_FACE (g));	\
+  } while (0)
+
 /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 0,
    return the length and the address of the character-sequence
    used for outputting GLYPH G.  */