csi: add 'unimplemented' warnings for things we handle but ignore

This commit is contained in:
Daniel Eklöf 2019-08-04 18:11:59 +02:00
parent 8deead14e8
commit e2e1db8faf
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

25
csi.c
View file

@ -105,7 +105,7 @@ csi_sgr(struct terminal *term)
case 3: term->vt.attrs.italic = true; break;
case 4: term->vt.attrs.underline = true; break;
case 5: term->vt.attrs.blink = true; break;
case 6: break; /* rapid blink, ignored */
case 6: LOG_WARN("ignored: rapid blink"); break;
case 7: term->vt.attrs.reverse = true; break;
case 8: term->vt.attrs.conceal = true; break;
case 9: term->vt.attrs.strikethrough = true; break;
@ -860,8 +860,9 @@ csi_dispatch(struct terminal *term, uint8_t final)
switch (term->vt.params.v[i].value) {
case 1001: /* save old highlight mouse tracking mode? */
LOG_WARN(
"unimplemented: CSI ?1001s "
"(save 'highlight mouse tracking' mode)");
"unimplemented: %s "
"(save 'highlight mouse tracking' mode)",
csi_as_string(term, final));
break;
default:
@ -876,8 +877,9 @@ csi_dispatch(struct terminal *term, uint8_t final)
switch (term->vt.params.v[i].value) {
case 1001: /* restore old highlight mouse tracking mode? */
LOG_WARN(
"unimplemented: CSI ?1001r "
"(restore 'highlight mouse tracking' mode)");
"unimplemented: %s "
"(restore 'highlight mouse tracking' mode)",
csi_as_string(term, final));
break;
default:
@ -913,14 +915,25 @@ csi_dispatch(struct terminal *term, uint8_t final)
/* Reset all */
} else {
int resource = vt_param_get(term, 0, 0);
int value __attribute__((unused)) = vt_param_get(term, 1, 0);
int value = vt_param_get(term, 1, -1);
switch (resource) {
case 0: /* modifyKeyboard */
break;
case 1: /* modifyCursorKeys */
case 2: /* modifyFunctionKeys */
case 4: /* modifyOtherKeys */
/* Ignored, we always report modifiers */
if (value != 2 && value != -1 &&
!(resource == 4 && value == 1))
{
LOG_WARN("unimplemented: %s = %d",
resource == 1 ? "modifyCursorKeys" :
resource == 2 ? "modifyFunctionKeys" :
resource == 4 ? "modifyOtherKeys" : "<invalid>",
value);
}
break;
default: