summaryrefslogtreecommitdiff
path: root/src/term.c
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-08-16 12:14:15 +0000
committerGerd Moellmann <gerd@gnu.org>2000-08-16 12:14:15 +0000
commit65aa5e85fa3594ed0470f55d0c6c06c2d9de1d22 (patch)
tree9147d9844c8b2b10a50284255e8faf2f47f03ee3 /src/term.c
parentbb10be8b6f10bc9a53f11869b1fb7f216394b852 (diff)
downloademacs-65aa5e85fa3594ed0470f55d0c6c06c2d9de1d22.tar.gz
(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.
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c17
1 files changed, 11 insertions, 6 deletions
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
{