Mercurial > emacs
changeset 63549:bda22724fc82
(produce_special_glyphs): Use spec_glyph_lookup_face.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 17 Jun 2005 14:08:58 +0000 |
parents | 3a486bf74d99 |
children | 0691dbaf122b |
files | src/term.c |
diffstat | 1 files changed, 28 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/term.c Fri Jun 17 14:06:22 2005 +0000 +++ b/src/term.c Fri Jun 17 14:08:58 2005 +0000 @@ -1857,6 +1857,7 @@ enum display_element_type what; { struct it temp_it; + GLYPH glyph; temp_it = *it; temp_it.dp = NULL; @@ -1872,15 +1873,11 @@ && INTEGERP (DISP_CONTINUE_GLYPH (it->dp)) && GLYPH_CHAR_VALID_P (XINT (DISP_CONTINUE_GLYPH (it->dp)))) { - temp_it.c = FAST_GLYPH_CHAR (XINT (DISP_CONTINUE_GLYPH (it->dp))); - temp_it.len = CHAR_BYTES (temp_it.c); + glyph = XINT (DISP_CONTINUE_GLYPH (it->dp)); + glyph = spec_glyph_lookup_face (XWINDOW (it->window), glyph); } else - temp_it.c = '\\'; - - produce_glyphs (&temp_it); - it->pixel_width = temp_it.pixel_width; - it->nglyphs = temp_it.pixel_width; + glyph = '\\'; } else if (what == IT_TRUNCATION) { @@ -1889,18 +1886,22 @@ && INTEGERP (DISP_TRUNC_GLYPH (it->dp)) && GLYPH_CHAR_VALID_P (XINT (DISP_TRUNC_GLYPH (it->dp)))) { - temp_it.c = FAST_GLYPH_CHAR (XINT (DISP_TRUNC_GLYPH (it->dp))); - temp_it.len = CHAR_BYTES (temp_it.c); + glyph = XINT (DISP_TRUNC_GLYPH (it->dp)); + glyph = spec_glyph_lookup_face (XWINDOW (it->window), glyph); } else - temp_it.c = '$'; - - produce_glyphs (&temp_it); - it->pixel_width = temp_it.pixel_width; - it->nglyphs = temp_it.pixel_width; + glyph = '$'; } else abort (); + + temp_it.c = FAST_GLYPH_CHAR (glyph); + temp_it.face_id = FAST_GLYPH_FACE (glyph); + temp_it.len = CHAR_BYTES (temp_it.c); + + produce_glyphs (&temp_it); + it->pixel_width = temp_it.pixel_width; + it->nglyphs = temp_it.pixel_width; } @@ -1919,7 +1920,8 @@ ? (TN_no_color_video & (ATTR)) == 0 \ : 1) -/* Turn appearances of face FACE_ID on tty frame F on. */ +/* Turn appearances of face FACE_ID on tty frame F on. + FACE_ID is a realized face ID number, in the face cache. */ static void turn_on_face (f, face_id) @@ -2685,6 +2687,16 @@ exit (1); } +DEFUN ("tty-no-underline", Ftty_no_underline, Stty_no_underline, 0, 0, 0, + doc: /* Declare that this terminal does not handle underlining. +This is used to override the terminfo data, for certain terminals that +do not really do underlining, but say that they do. */) + () +{ + TS_enter_underline_mode = 0; + return Qnil; +} + void syms_of_term () { @@ -2704,6 +2716,7 @@ defsubr (&Stty_display_color_p); defsubr (&Stty_display_color_cells); + defsubr (&Stty_no_underline); } /* arch-tag: 498e7449-6f2e-45e2-91dd-b7d4ca488193