# HG changeset patch # User Gerd Moellmann # Date 966427950 0 # Node ID fc80dcfc32cd2f9a8ccaad8d4290b18050e0c05f # Parent 91e24edb537a7ac5243b898869bcafaee045cea0 (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. diff -r 91e24edb537a -r fc80dcfc32cd src/term.c --- a/src/term.c Wed Aug 16 11:19:34 2000 +0000 +++ b/src/term.c Wed Aug 16 12:12:30 2000 +0000 @@ -1115,6 +1115,7 @@ /* 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 @@ sf = XFRAME (selected_frame); f = updating_frame ? updating_frame : sf; - highlight_if_desired (); if (TS_ins_multi_chars) { @@ -1189,6 +1189,7 @@ } else { + highlight_if_desired (); turn_on_face (f, start->face_id); glyph = start; ++start; @@ -1221,7 +1222,10 @@ 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 @@ || 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 {