From 6bf75d199b02ff933f72a4237cc553fe8c9344ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 15 Jul 2019 13:39:19 +0200 Subject: [PATCH] vt: \EB and \E0 have an optional "private", not param (which are CSI only) --- vt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vt.c b/vt.c index 4f438eb0..d6634e9d 100644 --- a/vt.c +++ b/vt.c @@ -574,6 +574,8 @@ esc_as_string(struct terminal *term, uint8_t final) if (term->vt.private != 0) c += snprintf(&msg[c], sizeof(msg) - c, "%c", term->vt.private); + assert(term->vt.params.idx == 0); + c += snprintf(&msg[c], sizeof(msg) - c, "%c", final); return msg; @@ -597,7 +599,7 @@ esc_dispatch(struct terminal *term, uint8_t final) case 'B': { /* Configure G0-G3 to use ASCII */ - char param = vt_param_get(term, 0, '('); + char param = term->vt.private != 0 ? term->vt.private : '('; switch (param) { case '(': term->charset[0] = CHARSET_ASCII; break; @@ -628,7 +630,7 @@ esc_dispatch(struct terminal *term, uint8_t final) case '0': { /* Configure G0-G3 to use special chars + line drawing */ - char param = term->vt.params.idx > 0 ? term->vt.params.v[0].value : '('; + char param = term->vt.private != 0 ? term->vt.private : '('; switch (param) { case '(': term->charset[0] = CHARSET_GRAPHIC; break;