# HG changeset patch # User Kenichi Handa # Date 871186399 0 # Node ID b2c5e1bea50e457200946b2ab4877b7caf1ef8d0 # Parent 0fb8728cd2367a498b2386d79860b41afa8de172 (dumpglyphs): Pay attention to Vignore_relative_composition. diff -r 0fb8728cd236 -r b2c5e1bea50e src/xterm.c --- a/src/xterm.c Sun Aug 10 04:09:49 1997 +0000 +++ b/src/xterm.c Sun Aug 10 04:13:19 1997 +0000 @@ -1013,17 +1013,32 @@ if (relative_compose) { pcm = PER_CHAR_METRIC (font, x_2byte_buffer + i); - if (- pcm->descent >= relative_compose) + if (NILP (Vignore_relative_composition) + || NILP (Faref (Vignore_relative_composition, + make_number (cmpcharp->glyph[gidx])))) { - /* Draw above the current glyphs. */ - y_offset = highest + pcm->descent; - highest += pcm->ascent + pcm->descent; + if (- pcm->descent >= relative_compose) + { + /* Draw above the current glyphs. */ + y_offset = highest + pcm->descent; + highest += pcm->ascent + pcm->descent; + } + else if (pcm->ascent <= 0) + { + /* Draw beneath the current glyphs. */ + y_offset = lowest - pcm->ascent; + lowest -= pcm->ascent + pcm->descent; + } } - else if (pcm->ascent <= 0) + else { - /* Draw beneath the current glyphs. */ - y_offset = lowest - pcm->ascent; - lowest -= pcm->ascent + pcm->descent; + /* Draw the glyph at normal position. If + it sticks out of HIGHEST or LOWEST, + update them appropriately. */ + if (pcm->ascent > highest) + highest = pcm->ascent; + else if (- pcm->descent < lowest) + lowest = - pcm->descent; } } else if (cmpcharp->cmp_rule)