Mercurial > emacs
comparison src/term.c @ 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 | b590724d8c48 |
| children | 6a0caa788013 |
comparison
equal
deleted
inserted
replaced
| 30847:91e24edb537a | 30848:fc80dcfc32cd |
|---|---|
| 1113 string += consumed; | 1113 string += consumed; |
| 1114 } | 1114 } |
| 1115 | 1115 |
| 1116 /* Turn appearance modes off. */ | 1116 /* Turn appearance modes off. */ |
| 1117 turn_off_face (f, face_id); | 1117 turn_off_face (f, face_id); |
| 1118 turn_off_highlight (); | |
| 1118 } | 1119 } |
| 1119 | 1120 |
| 1120 /* We may have to output some codes to terminate the writing. */ | 1121 /* We may have to output some codes to terminate the writing. */ |
| 1121 if (CODING_REQUIRE_FLUSHING (&terminal_coding)) | 1122 if (CODING_REQUIRE_FLUSHING (&terminal_coding)) |
| 1122 { | 1123 { |
| 1157 return; | 1158 return; |
| 1158 } | 1159 } |
| 1159 | 1160 |
| 1160 sf = XFRAME (selected_frame); | 1161 sf = XFRAME (selected_frame); |
| 1161 f = updating_frame ? updating_frame : sf; | 1162 f = updating_frame ? updating_frame : sf; |
| 1162 highlight_if_desired (); | |
| 1163 | 1163 |
| 1164 if (TS_ins_multi_chars) | 1164 if (TS_ins_multi_chars) |
| 1165 { | 1165 { |
| 1166 buf = tparam (TS_ins_multi_chars, 0, 0, len); | 1166 buf = tparam (TS_ins_multi_chars, 0, 0, len); |
| 1167 OUTPUT1 (buf); | 1167 OUTPUT1 (buf); |
| 1187 conversion_buffer[0] = SPACEGLYPH; | 1187 conversion_buffer[0] = SPACEGLYPH; |
| 1188 produced = 1; | 1188 produced = 1; |
| 1189 } | 1189 } |
| 1190 else | 1190 else |
| 1191 { | 1191 { |
| 1192 highlight_if_desired (); | |
| 1192 turn_on_face (f, start->face_id); | 1193 turn_on_face (f, start->face_id); |
| 1193 glyph = start; | 1194 glyph = start; |
| 1194 ++start; | 1195 ++start; |
| 1195 /* We must open sufficient space for a character which | 1196 /* We must open sufficient space for a character which |
| 1196 occupies more than one column. */ | 1197 occupies more than one column. */ |
| 1219 fwrite (conversion_buffer, 1, produced, termscript); | 1220 fwrite (conversion_buffer, 1, produced, termscript); |
| 1220 } | 1221 } |
| 1221 | 1222 |
| 1222 OUTPUT1_IF (TS_pad_inserted_char); | 1223 OUTPUT1_IF (TS_pad_inserted_char); |
| 1223 if (start) | 1224 if (start) |
| 1224 turn_off_face (f, glyph->face_id); | 1225 { |
| 1226 turn_off_face (f, glyph->face_id); | |
| 1227 turn_off_highlight (); | |
| 1228 } | |
| 1225 } | 1229 } |
| 1226 | 1230 |
| 1227 cmcheckmagic (); | 1231 cmcheckmagic (); |
| 1228 } | 1232 } |
| 1229 | 1233 |
| 2080 || face->tty_dim_p | 2084 || face->tty_dim_p |
| 2081 || face->tty_reverse_p | 2085 || face->tty_reverse_p |
| 2082 || face->tty_alt_charset_p | 2086 || face->tty_alt_charset_p |
| 2083 || face->tty_blinking_p | 2087 || face->tty_blinking_p |
| 2084 || face->tty_underline_p) | 2088 || face->tty_underline_p) |
| 2085 OUTPUT1_IF (TS_exit_attribute_mode); | 2089 { |
| 2090 OUTPUT1_IF (TS_exit_attribute_mode); | |
| 2091 if (strcmp (TS_exit_attribute_mode, TS_end_standout_mode) == 0) | |
| 2092 standout_mode = 0; | |
| 2093 } | |
| 2086 | 2094 |
| 2087 if (face->tty_alt_charset_p) | 2095 if (face->tty_alt_charset_p) |
| 2088 OUTPUT_IF (TS_exit_alt_charset_mode); | 2096 OUTPUT_IF (TS_exit_alt_charset_mode); |
| 2089 | |
| 2090 if (standout_mode) | |
| 2091 standout_mode = 0; | |
| 2092 } | 2097 } |
| 2093 else | 2098 else |
| 2094 { | 2099 { |
| 2095 /* If we don't have "me" we can only have those appearances | 2100 /* If we don't have "me" we can only have those appearances |
| 2096 that have exit sequences defined. */ | 2101 that have exit sequences defined. */ |
