|
|
|
@ -581,23 +581,23 @@ term_setstyles(FILE* out, uint32_t* curattr, const cell* c, bool* normalized,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// u8->str lookup table used in term_esc_rgb below
|
|
|
|
|
static const char* NUMBERS[] = {
|
|
|
|
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
|
|
|
|
|
"17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32",
|
|
|
|
|
"33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48",
|
|
|
|
|
"49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64",
|
|
|
|
|
"65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80",
|
|
|
|
|
"81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96",
|
|
|
|
|
"97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112",
|
|
|
|
|
"113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128",
|
|
|
|
|
"129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144",
|
|
|
|
|
"145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160",
|
|
|
|
|
"161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176",
|
|
|
|
|
"177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192",
|
|
|
|
|
"193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208",
|
|
|
|
|
"209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224",
|
|
|
|
|
"225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240",
|
|
|
|
|
"241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", };
|
|
|
|
|
static const char* const NUMBERS[] = {
|
|
|
|
|
"0;", "1;", "2;", "3;", "4;", "5;", "6;", "7;", "8;", "9;", "10;", "11;", "12;", "13;", "14;", "15;", "16;",
|
|
|
|
|
"17;", "18;", "19;", "20;", "21;", "22;", "23;", "24;", "25;", "26;", "27;", "28;", "29;", "30;", "31;", "32;",
|
|
|
|
|
"33;", "34;", "35;", "36;", "37;", "38;", "39;", "40;", "41;", "42;", "43;", "44;", "45;", "46;", "47;", "48;",
|
|
|
|
|
"49;", "50;", "51;", "52;", "53;", "54;", "55;", "56;", "57;", "58;", "59;", "60;", "61;", "62;", "63;", "64;",
|
|
|
|
|
"65;", "66;", "67;", "68;", "69;", "70;", "71;", "72;", "73;", "74;", "75;", "76;", "77;", "78;", "79;", "80;",
|
|
|
|
|
"81;", "82;", "83;", "84;", "85;", "86;", "87;", "88;", "89;", "90;", "91;", "92;", "93;", "94;", "95;", "96;",
|
|
|
|
|
"97;", "98;", "99;", "100;", "101;", "102;", "103;", "104;", "105;", "106;", "107;", "108;", "109;", "110;", "111;", "112;",
|
|
|
|
|
"113;", "114;", "115;", "116;", "117;", "118;", "119;", "120;", "121;", "122;", "123;", "124;", "125;", "126;", "127;", "128;",
|
|
|
|
|
"129;", "130;", "131;", "132;", "133;", "134;", "135;", "136;", "137;", "138;", "139;", "140;", "141;", "142;", "143;", "144;",
|
|
|
|
|
"145;", "146;", "147;", "148;", "149;", "150;", "151;", "152;", "153;", "154;", "155;", "156;", "157;", "158;", "159;", "160;",
|
|
|
|
|
"161;", "162;", "163;", "164;", "165;", "166;", "167;", "168;", "169;", "170;", "171;", "172;", "173;", "174;", "175;", "176;",
|
|
|
|
|
"177;", "178;", "179;", "180;", "181;", "182;", "183;", "184;", "185;", "186;", "187;", "188;", "189;", "190;", "191;", "192;",
|
|
|
|
|
"193;", "194;", "195;", "196;", "197;", "198;", "199;", "200;", "201;", "202;", "203;", "204;", "205;", "206;", "207;", "208;",
|
|
|
|
|
"209;", "210;", "211;", "212;", "213;", "214;", "215;", "216;", "217;", "218;", "219;", "220;", "221;", "222;", "223;", "224;",
|
|
|
|
|
"225;", "226;", "227;", "228;", "229;", "230;", "231;", "232;", "233;", "234;", "235;", "236;", "237;", "238;", "239;", "240;",
|
|
|
|
|
"241;", "242;", "243;", "244;", "245;", "246;", "247;", "248;", "249;", "250;", "251;", "252;", "253;", "254;", "255;", };
|
|
|
|
|
|
|
|
|
|
static inline int
|
|
|
|
|
term_esc_rgb(FILE* out, bool foreground, unsigned r, unsigned g, unsigned b){
|
|
|
|
@ -630,21 +630,16 @@ term_esc_rgb(FILE* out, bool foreground, unsigned r, unsigned g, unsigned b){
|
|
|
|
|
}
|
|
|
|
|
size_t offset = 7;
|
|
|
|
|
const char* s = NUMBERS[r];
|
|
|
|
|
while( (rgbbuf[offset] = *s) ){
|
|
|
|
|
++offset;
|
|
|
|
|
++s;
|
|
|
|
|
while(*s){
|
|
|
|
|
rgbbuf[offset++] = *s++;
|
|
|
|
|
}
|
|
|
|
|
rgbbuf[offset++] = ';';
|
|
|
|
|
s = NUMBERS[g];
|
|
|
|
|
while( (rgbbuf[offset] = *s) ){
|
|
|
|
|
++offset;
|
|
|
|
|
++s;
|
|
|
|
|
while(*s){
|
|
|
|
|
rgbbuf[offset++] = *s++;
|
|
|
|
|
}
|
|
|
|
|
rgbbuf[offset++] = ';';
|
|
|
|
|
s = NUMBERS[b];
|
|
|
|
|
while( (rgbbuf[offset] = *s) ){
|
|
|
|
|
++offset;
|
|
|
|
|
++s;
|
|
|
|
|
while(*s != ';'){
|
|
|
|
|
rgbbuf[offset++] = *s++;
|
|
|
|
|
}
|
|
|
|
|
rgbbuf[offset++] = 'm';
|
|
|
|
|
rgbbuf[offset] = '\0';
|
|
|
|
|