changeset 30848:fc80dcfc32cd

(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.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 16 Aug 2000 12:12:30 +0000
parents 91e24edb537a
children cac6b0fce0ec
files src/term.c
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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
     {