# HG changeset patch # User Jim Blandy # Date 736992994 0 # Node ID 507115aff66d4b66e00f0691f2e7ea360a70700a # Parent 56a657acd984cd56eb2c968a40a9aa9965969e73 * xdisp.c (display_text_line): Apply faces to characters according to overlays and text properties; use compute_char_face to figure out what face to use, and where a new face starts. * xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide which frame face to use. Call GLYPH_FOLLOW_ALIASES to make sure we're implementing the glyph table properly. If we're not using the default or mode line face, call intern_face to find a display face for the frame face selected by the glyph code. Implement underlining. Remove the `font' argument; we have to derive this from the frame and face anyway. Change all callers. * disptab.h (GLYPH_FOLLOW_ALIASES): New macro. diff -r 56a657acd984 -r 507115aff66d src/disptab.h --- a/src/disptab.h Mon May 10 00:15:58 1993 +0000 +++ b/src/disptab.h Mon May 10 00:16:34 1993 +0000 @@ -63,6 +63,12 @@ return the alias for G. */ #define GLYPH_ALIAS(base, g) XINT (base[g]) +/* 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)); + /* 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. */