forked from enlightenment/terminology
termptyesc: 98/108 are not valid color codes + test
This commit is contained in:
parent
add8b71778
commit
eab5ffb956
|
@ -1078,35 +1078,6 @@ _handle_esc_csi_color_set(Termpty *ty, Eina_Unicode **ptr,
|
||||||
ty->termstate.att.fg = (arg - 90) + COL_BLACK;
|
ty->termstate.att.fg = (arg - 90) + COL_BLACK;
|
||||||
ty->termstate.att.fgintense = 1;
|
ty->termstate.att.fgintense = 1;
|
||||||
break;
|
break;
|
||||||
case 98: // xterm 256 fg color ???
|
|
||||||
// now check if next arg is 5
|
|
||||||
/* TODO: shall be like 38 ? */
|
|
||||||
/* TODO: -CSI_ARG_NO_VALUE */
|
|
||||||
arg = _csi_arg_get(ty, &b);
|
|
||||||
if (arg != 5)
|
|
||||||
{
|
|
||||||
ERR("Failed xterm 256 color fg esc 5 (got %d)", arg);
|
|
||||||
ty->decoding_error = EINA_TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// then get next arg - should be color index 0-255
|
|
||||||
arg = _csi_arg_get(ty, &b);
|
|
||||||
if (arg <= -CSI_ARG_ERROR || arg > 255)
|
|
||||||
{
|
|
||||||
ERR("Invalid fg color %d", arg);
|
|
||||||
ty->decoding_error = EINA_TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (arg == -CSI_ARG_NO_VALUE)
|
|
||||||
arg = 0;
|
|
||||||
ty->termstate.att.fg256 = 1;
|
|
||||||
ty->termstate.att.fg = arg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ty->termstate.att.fgintense = 1;
|
|
||||||
break;
|
|
||||||
case 99: // default fg color
|
case 99: // default fg color
|
||||||
ty->termstate.att.fg256 = 0;
|
ty->termstate.att.fg256 = 0;
|
||||||
ty->termstate.att.fg = COL_DEF;
|
ty->termstate.att.fg = COL_DEF;
|
||||||
|
@ -1124,34 +1095,6 @@ _handle_esc_csi_color_set(Termpty *ty, Eina_Unicode **ptr,
|
||||||
ty->termstate.att.bg = (arg - 100) + COL_BLACK;
|
ty->termstate.att.bg = (arg - 100) + COL_BLACK;
|
||||||
ty->termstate.att.bgintense = 1;
|
ty->termstate.att.bgintense = 1;
|
||||||
break;
|
break;
|
||||||
case 108: // xterm 256 bg color ???
|
|
||||||
// now check if next arg is 5
|
|
||||||
/* TODO: -CSI_ARG_NO_VALUE */
|
|
||||||
arg = _csi_arg_get(ty, &b);
|
|
||||||
if (arg != 5)
|
|
||||||
{
|
|
||||||
ERR("Failed xterm 256 color bg esc 5 (got %d)", arg);
|
|
||||||
ty->decoding_error = EINA_TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// then get next arg - should be color index 0-255
|
|
||||||
arg = _csi_arg_get(ty, &b);
|
|
||||||
if (arg <= -CSI_ARG_ERROR || arg > 255)
|
|
||||||
{
|
|
||||||
ERR("Invalid bg color %d", arg);
|
|
||||||
ty->decoding_error = EINA_TRUE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (arg == -CSI_ARG_NO_VALUE)
|
|
||||||
arg = 0;
|
|
||||||
ty->termstate.att.bg256 = 1;
|
|
||||||
ty->termstate.att.bg = arg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ty->termstate.att.bgintense = 1;
|
|
||||||
break;
|
|
||||||
case 109: // default bg color
|
case 109: // default bg color
|
||||||
ty->termstate.att.bg256 = 0;
|
ty->termstate.att.bg256 = 0;
|
||||||
ty->termstate.att.bg = COL_DEF;
|
ty->termstate.att.bg = COL_DEF;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# long sequence
|
||||||
|
printf '\033[0;1;2;3;4;5;9;20;38;5;58;48;5;34;52;53mo'
|
||||||
|
# long sequence with 98/108 which are not allowed, were producing the same
|
||||||
|
printf '\033[0;1;2;3;4;5;9;20;98;5;58;108;5;34;52;53mo'
|
||||||
|
printf '\n'
|
||||||
|
# both shall provide the same output
|
||||||
|
printf '\033[0;5;58;5;34mo\033[0;98;5;58;108;5;34mo'
|
||||||
|
|
|
@ -28,3 +28,4 @@ dsr-udk.sh f3a20968a2f25bfd36875dbc5f64ab16
|
||||||
colors.sh 532494a2e56c102ee10ab1a9b8f176d7
|
colors.sh 532494a2e56c102ee10ab1a9b8f176d7
|
||||||
sgr-leading-trailing-semicolon.sh d7701f1193bde63412a9b969f17e10ec
|
sgr-leading-trailing-semicolon.sh d7701f1193bde63412a9b969f17e10ec
|
||||||
sgr-truecolors.sh 9db4becc728bb9f1730f3573dc7fc668
|
sgr-truecolors.sh 9db4becc728bb9f1730f3573dc7fc668
|
||||||
|
sgr-long.sh ec0425b1daabaa59096c10939e79b105
|
||||||
|
|
Loading…
Reference in New Issue