From 65aa5e85fa3594ed0470f55d0c6c06c2d9de1d22 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Wed, 16 Aug 2000 12:14:15 +0000 Subject: [PATCH] (write_glyphs): Also turn off inverse video after turning off other appearances in case TS_exit_attribute_mode is not equal to TS_end_standout_mode. (insert_glyphs): Turn inverse video on/off for each run of glyphs with the same face. (turn_off_face): Reset standout_mode only if TS_exit_attribute_mode has been output and TS_exit_attribute_mode is equal to TS_end_standout_mode. --- src/ChangeLog | 11 +++++++++++ src/term.c | 17 +++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ace6b087bfc..77f7ffc9498 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2000-08-16 Gerd Moellmann + + * term.c (write_glyphs): Also turn off inverse video after turning + off other appearances in case TS_exit_attribute_mode is not equal + to TS_end_standout_mode. + (insert_glyphs): Turn inverse video on/off for each run of glyphs + with the same face. + (turn_off_face): Reset standout_mode only if + TS_exit_attribute_mode has been output and TS_exit_attribute_mode + is equal to TS_end_standout_mode. + 2000-08-16 Kenichi Handa * coding.c (encode_coding): Fix the bug of not flushing ISO escape diff --git a/src/term.c b/src/term.c index d3b1b250072..01e5b578164 100644 --- a/src/term.c +++ b/src/term.c @@ -1115,6 +1115,7 @@ write_glyphs (string, len) /* Turn appearance modes off. */ turn_off_face (f, face_id); + turn_off_highlight (); } /* We may have to output some codes to terminate the writing. */ @@ -1159,7 +1160,6 @@ insert_glyphs (start, len) sf = XFRAME (selected_frame); f = updating_frame ? updating_frame : sf; - highlight_if_desired (); if (TS_ins_multi_chars) { @@ -1189,6 +1189,7 @@ insert_glyphs (start, len) } else { + highlight_if_desired (); turn_on_face (f, start->face_id); glyph = start; ++start; @@ -1221,7 +1222,10 @@ insert_glyphs (start, len) OUTPUT1_IF (TS_pad_inserted_char); if (start) - turn_off_face (f, glyph->face_id); + { + turn_off_face (f, glyph->face_id); + turn_off_highlight (); + } } cmcheckmagic (); @@ -2082,13 +2086,14 @@ turn_off_face (f, face_id) || face->tty_alt_charset_p || face->tty_blinking_p || face->tty_underline_p) - OUTPUT1_IF (TS_exit_attribute_mode); + { + OUTPUT1_IF (TS_exit_attribute_mode); + if (strcmp (TS_exit_attribute_mode, TS_end_standout_mode) == 0) + standout_mode = 0; + } if (face->tty_alt_charset_p) OUTPUT_IF (TS_exit_alt_charset_mode); - - if (standout_mode) - standout_mode = 0; } else { -- 2.39.2