]> git.eshelyaron.com Git - emacs.git/commitdiff
(write_glyphs): Also turn off inverse video after turning
authorGerd Moellmann <gerd@gnu.org>
Wed, 16 Aug 2000 12:14:15 +0000 (12:14 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 16 Aug 2000 12:14:15 +0000 (12:14 +0000)
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
src/term.c

index ace6b087bfc0557dcf2797fba37f8458f41b3b8a..77f7ffc9498ec20da45c6f532de3add6f52639d4 100644 (file)
@@ -1,3 +1,14 @@
+2000-08-16  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <handa@etl.go.jp>
 
        * coding.c (encode_coding): Fix the bug of not flushing ISO escape
index d3b1b2500723b21a5e9db60447811d5c3258bf76..01e5b578164dd3d3db6eb931e3597a94c1a25778 100644 (file)
@@ -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
     {