diff options
author | Gerd Moellmann <[email protected]> | 2000-08-16 12:14:15 +0000 |
---|---|---|
committer | Gerd Moellmann <[email protected]> | 2000-08-16 12:14:15 +0000 |
commit | 65aa5e85fa3594ed0470f55d0c6c06c2d9de1d22 (patch) | |
tree | 9147d9844c8b2b10a50284255e8faf2f47f03ee3 /src | |
parent | bb10be8b6f10bc9a53f11869b1fb7f216394b852 (diff) |
(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')
-rw-r--r-- | src/ChangeLog | 11 | ||||
-rw-r--r-- | src/term.c | 17 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ace6b087bf..77f7ffc949 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2000-08-16 Gerd Moellmann <[email protected]> + + * 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 <[email protected]> * coding.c (encode_coding): Fix the bug of not flushing ISO escape diff --git a/src/term.c b/src/term.c index d3b1b25007..01e5b57816 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 { |