# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1188203617 0 # Node ID 1c0e611785d02865d67085c299d0c4f96fccc944 # Parent e838385a9cefa96c0476b0d51b5ed8417186bd3c (x_draw_composite_glyph_string_foreground): Draw rectangle for nonexistent or zero-width glyph in composition glyph. diff -r e838385a9cef -r 1c0e611785d0 src/macterm.c --- a/src/macterm.c Mon Aug 27 08:33:14 2007 +0000 +++ b/src/macterm.c Mon Aug 27 08:33:37 2007 +0000 @@ -2973,10 +2973,17 @@ else { for (i = 0; i < s->nchars; i++, ++s->gidx) - mac_draw_image_string_16 (s->f, s->gc, - x + s->cmp->offsets[s->gidx * 2], - s->ybase - s->cmp->offsets[s->gidx * 2 + 1], - s->char2b + i, 1, 0, s->face->overstrike); + if (mac_per_char_metric (GC_FONT (s->gc), s->char2b + i, 0) == NULL) + /* This is a nonexistent or zero-width glyph such as a + combining diacritic. Draw a rectangle. */ + mac_draw_rectangle (s->f, s->gc, + x + s->cmp->offsets[s->gidx * 2], s->y, + FONT_WIDTH (GC_FONT (s->gc)) - 1, s->height - 1); + else + mac_draw_image_string_16 (s->f, s->gc, + x + s->cmp->offsets[s->gidx * 2], + s->ybase - s->cmp->offsets[s->gidx * 2 + 1], + s->char2b + i, 1, 0, s->face->overstrike); } }