From a02c0c8d4de96832f2bb3e8c16b8e6e4cf6a9662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 18 Mar 2025 18:28:09 +0100 Subject: [PATCH] vt: utf8: insert a REPLACEMENT CHARACTER when an invalid UTF-8 sequence is detected --- vt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vt.c b/vt.c index 173b59a6..1d8297be 100644 --- a/vt.c +++ b/vt.c @@ -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); } }