summarylogtreecommitdiffstats
path: root/addon-true-color.patch
diff options
context:
space:
mode:
Diffstat (limited to 'addon-true-color.patch')
-rw-r--r--addon-true-color.patch112
1 files changed, 0 insertions, 112 deletions
diff --git a/addon-true-color.patch b/addon-true-color.patch
deleted file mode 100644
index d172e6e319b8..000000000000
--- a/addon-true-color.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-diff --git a/src/tsm/tsm-vte.c b/src/tsm/tsm-vte.c
-index abadd51..e773ebb 100644
---- a/src/tsm/tsm-vte.c
-+++ b/src/tsm/tsm-vte.c
-@@ -1056,7 +1056,8 @@ static void do_esc(struct tsm_vte *vte, uint32_t data)
- static void csi_attribute(struct tsm_vte *vte)
- {
- static const uint8_t bval[6] = { 0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff };
-- unsigned int i, code;
-+ unsigned int i, code, val;
-+ uint8_t cr, cg, cb;
-
- if (vte->csi_argc <= 1 && vte->csi_argv[0] == -1) {
- vte->csi_argc = 1;
-@@ -1204,53 +1205,61 @@ static void csi_attribute(struct tsm_vte *vte)
- case 38:
- /* fallthrough */
- case 48:
-- if (i + 2 >= vte->csi_argc ||
-- vte->csi_argv[i + 1] != 5 ||
-- vte->csi_argv[i + 2] < 0) {
-- llog_debug(vte, "invalid 256color SGR");
-- break;
-- }
--
-- code = vte->csi_argv[i + 2];
-- if (vte->csi_argv[i] == 38) {
-- if (code < 16) {
-- vte->cattr.fccode = code;
-- } else if (code < 232) {
-- vte->cattr.fccode = -1;
-- code -= 16;
-- vte->cattr.fb = bval[code % 6];
-- code /= 6;
-- vte->cattr.fg = bval[code % 6];
-- code /= 6;
-- vte->cattr.fr = bval[code % 6];
-- } else {
-- vte->cattr.fccode = -1;
-- code = (code - 232) * 10 + 8;
-- vte->cattr.fr = code;
-- vte->cattr.fg = code;
-- vte->cattr.fb = code;
-+ val = vte->csi_argv[i];
-+ if (vte->csi_argv[i + 1] == 5) { // 256color mode
-+ if (i + 2 >= vte->csi_argc ||
-+ vte->csi_argv[i + 2] < 0) {
-+ llog_debug(vte, "invalid 256color SGR");
-+ break;
- }
-- } else {
-+ code = vte->csi_argv[i + 2];
- if (code < 16) {
-- vte->cattr.bccode = code;
-+ //nochange
- } else if (code < 232) {
-- vte->cattr.bccode = -1;
- code -= 16;
-- vte->cattr.bb = bval[code % 6];
-+ cb = bval[code % 6];
- code /= 6;
-- vte->cattr.bg = bval[code % 6];
-+ cg = bval[code % 6];
- code /= 6;
-- vte->cattr.br = bval[code % 6];
-+ cr = bval[code % 6];
-+ code = -1;
- } else {
-- vte->cattr.bccode = -1;
- code = (code - 232) * 10 + 8;
-- vte->cattr.br = code;
-- vte->cattr.bg = code;
-- vte->cattr.bb = code;
-+ cr = code;
-+ cg = code;
-+ cb = code;
-+ code = -1;
- }
-+ i += 2;
-+ } else if (vte->csi_argv[i + 1] == 2) { // true color mode
-+ if (i + 4 >= vte->csi_argc ||
-+ vte->csi_argv[i + 2] < 0 ||
-+ vte->csi_argv[i + 3] < 0 ||
-+ vte->csi_argv[i + 4] < 0) {
-+ llog_debug(vte, "invalid true color SGR");
-+ break;
-+ }
-+ cr = vte->csi_argv[i + 2];
-+ cg = vte->csi_argv[i + 3];
-+ cb = vte->csi_argv[i + 4];
-+ code = -1;
-+ i += 4;
-+ } else {
-+ llog_debug(vte, "invalid SGR");
-+ break;
-+ }
-+ if (val == 38) {
-+ vte->cattr.fccode = code;
-+ vte->cattr.fr = cr;
-+ vte->cattr.fg = cg;
-+ vte->cattr.fb = cb;
-+ } else {
-+ vte->cattr.bccode = code;
-+ vte->cattr.br = cr;
-+ vte->cattr.bg = cg;
-+ vte->cattr.bb = cb;
- }
-
-- i += 2;
- break;
- default:
- llog_debug(vte, "unhandled SGR attr %i",