vt: utf8: insert a REPLACEMENT CHARACTER when an invalid UTF-8 sequence is detected

This commit is contained in:
Daniel Eklöf 2025-03-18 18:28:09 +01:00
parent 878e07da59
commit a02c0c8d4d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

12
vt.c
View file

@ -1041,7 +1041,7 @@ state_utf8_21_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_22(term, data); return STATE_GROUND;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}
@ -1051,7 +1051,7 @@ state_utf8_31_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_32(term, data); return STATE_UTF8_32;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}
@ -1061,7 +1061,7 @@ state_utf8_32_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_33(term, data); return STATE_GROUND;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}
@ -1071,7 +1071,7 @@ state_utf8_41_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_42(term, data); return STATE_UTF8_42;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}
@ -1081,7 +1081,7 @@ state_utf8_42_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_43(term, data); return STATE_UTF8_43;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}
@ -1091,7 +1091,7 @@ state_utf8_43_switch(struct terminal *term, uint8_t data)
switch (data) {
/* exit current enter new state */
case 0x80 ... 0xbf: action_utf8_44(term, data); return STATE_GROUND;
default: return state_ground_switch(term, data);
default: action_utf8_print(term, 0xfffd); return state_ground_switch(term, data);
}
}