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. */