Skip to content

Commit d76aa9d

Browse files
committed
new ANSI ESC code LIGHTBROWN
1 parent 4968e4c commit d76aa9d

File tree

2 files changed

+121
-118
lines changed

2 files changed

+121
-118
lines changed

lib/tftLib/src/tft.cpp

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2744,45 +2744,46 @@ uint16_t TFT::validCharsInString(const char* str, uint16_t* chArr, int8_t* ansiA
27442744
while((uint8_t)str[idx] != 0) {
27452745
switch((uint8_t)str[idx]) {
27462746
case '\033': // ANSI sequence
2747-
if(strncmp(str + idx, "\033[30m", 5) == 0) {idx += 5; ansiArr[chLen] = 1; break;} // ANSI_ESC_BLACK
2748-
if(strncmp(str + idx, "\033[31m", 5) == 0) {idx += 5; ansiArr[chLen] = 2; break;} // ANSI_ESC_RED
2749-
if(strncmp(str + idx, "\033[32m", 5) == 0) {idx += 5; ansiArr[chLen] = 3; break;} // ANSI_ESC_GREEN
2750-
if(strncmp(str + idx, "\033[33m", 5) == 0) {idx += 5; ansiArr[chLen] = 4; break;} // ANSI_ESC_YELLOW
2751-
if(strncmp(str + idx, "\033[34m", 5) == 0) {idx += 5; ansiArr[chLen] = 5; break;} // ANSI_ESC_BLUE
2752-
if(strncmp(str + idx, "\033[35m", 5) == 0) {idx += 5; ansiArr[chLen] = 6; break;} // ANSI_ESC_MAGENTA
2753-
if(strncmp(str + idx, "\033[36m", 5) == 0) {idx += 5; ansiArr[chLen] = 7; break;} // ANSI_ESC_CYAN
2754-
if(strncmp(str + idx, "\033[37m", 5) == 0) {idx += 5; ansiArr[chLen] = 8; break;} // ANSI_ESC_WHITE
2755-
if(strncmp(str + idx, "\033[38;5;130m", 11) == 0) {idx += 11; ansiArr[chLen] = 9; break;} // ANSI_ESC_BROWN
2756-
if(strncmp(str + idx, "\033[38;5;214m", 11) == 0) {idx += 11; ansiArr[chLen] = 10; break;} // ANSI_ESC_ORANGE
2757-
if(strncmp(str + idx, "\033[90m", 5) == 0) {idx += 5; ansiArr[chLen] = 11; break;} // ANSI_ESC_GREY
2758-
if(strncmp(str + idx, "\033[91m", 5) == 0) {idx += 5; ansiArr[chLen] = 12; break;} // ANSI_ESC_LIGHTRED
2759-
if(strncmp(str + idx, "\033[92m", 5) == 0) {idx += 5; ansiArr[chLen] = 13; break;} // ANSI_ESC_LIGHTGREEN
2760-
if(strncmp(str + idx, "\033[93m", 5) == 0) {idx += 5; ansiArr[chLen] = 14; break;} // ANSI_ESC_LIGHTYELLOW
2761-
if(strncmp(str + idx, "\033[94m", 5) == 0) {idx += 5; ansiArr[chLen] = 15; break;} // ANSI_ESC_LIGHTBLUE
2762-
if(strncmp(str + idx, "\033[95m", 5) == 0) {idx += 5; ansiArr[chLen] = 16; break;} // ANSI_ESC_LIGHTMAGENTA
2763-
if(strncmp(str + idx, "\033[96m", 5) == 0) {idx += 5; ansiArr[chLen] = 17; break;} // ANSI_ESC_LIGHTCYAN
2764-
if(strncmp(str + idx, "\033[97m", 5) == 0) {idx += 5; ansiArr[chLen] = 18; break;} // ANSI_ESC_LIGHTGREY
2765-
if(strncmp(str + idx, "\033[38;5;52m", 10) == 0) {idx += 10; ansiArr[chLen] = 19; break;} // ANSI_ESC_DARKRED
2766-
if(strncmp(str + idx, "\033[38;5;22m", 10) == 0) {idx += 10; ansiArr[chLen] = 20; break;} // ANSI_ESC_DARKGREEN
2767-
if(strncmp(str + idx, "\033[38;5;136m", 11) == 0) {idx += 11; ansiArr[chLen] = 21; break;} // ANSI_ESC_DARKYELLOW
2768-
if(strncmp(str + idx, "\033[38;5;17m", 10) == 0) {idx += 10; ansiArr[chLen] = 22; break;} // ANSI_ESC_DARKBLUE
2769-
if(strncmp(str + idx, "\033[38;5;53m", 10) == 0) {idx += 10; ansiArr[chLen] = 23; break;} // ANSI_ESC_DARKMAGENTA
2770-
if(strncmp(str + idx, "\033[38;5;23m", 10) == 0) {idx += 10; ansiArr[chLen] = 24; break;} // ANSI_ESC_DARKCYAN
2771-
if(strncmp(str + idx, "\033[38;5;240m", 11) == 0) {idx += 11; ansiArr[chLen] = 25; break;} // ANSI_ESC_DARKGREY
2772-
if(strncmp(str + idx, "\033[38;5;166m", 11) == 0) {idx += 11; ansiArr[chLen] = 26; break;} // ANSI_ESC_DARKORANGE
2773-
if(strncmp(str + idx, "\033[38;5;215m", 11) == 0) {idx += 11; ansiArr[chLen] = 27; break;} // ANSI_ESC_LIGHTORANGE
2774-
if(strncmp(str + idx, "\033[38;5;129m", 11) == 0) {idx += 11; ansiArr[chLen] = 28; break;} // ANSI_ESC_PURPLE
2775-
if(strncmp(str + idx, "\033[38;5;213m", 11) == 0) {idx += 11; ansiArr[chLen] = 29; break;} // ANSI_ESC_PINK
2776-
if(strncmp(str + idx, "\033[38;5;190m", 11) == 0) {idx += 11; ansiArr[chLen] = 30; break;} // ANSI_ESC_LIME
2777-
if(strncmp(str + idx, "\033[38;5;25m", 10) == 0) {idx += 10; ansiArr[chLen] = 31; break;} // ANSI_ESC_NAVY
2778-
if(strncmp(str + idx, "\033[38;5;51m", 10) == 0) {idx += 10; ansiArr[chLen] = 32; break;} // ANSI_ESC_AQUAMARINE
2779-
if(strncmp(str + idx, "\033[38;5;189m", 11) == 0) {idx += 11; ansiArr[chLen] = 33; break;} // ANSI_ESC_LAVENDER
2780-
if(strncmp(str + idx, "\033[0m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_RESET unused
2781-
if(strncmp(str + idx, "\033[1m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_BOLD unused
2782-
if(strncmp(str + idx, "\033[2m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_FAINT unused
2783-
if(strncmp(str + idx, "\033[3m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_ITALIC unused
2784-
if(strncmp(str + idx, "\033[4m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_UNDERLINE unused
2785-
log_w("unknown ANSI ESC SEQUENCE"); {idx += 4; ansiArr[chLen] = -1; break;} // unknown
2747+
if(strncmp(str + idx, "\033[30m", 5) == 0) {idx += 5; ansiArr[chLen] = 1; break;} // ANSI_ESC_BLACK
2748+
if(strncmp(str + idx, "\033[31m", 5) == 0) {idx += 5; ansiArr[chLen] = 2; break;} // ANSI_ESC_RED
2749+
if(strncmp(str + idx, "\033[32m", 5) == 0) {idx += 5; ansiArr[chLen] = 3; break;} // ANSI_ESC_GREEN
2750+
if(strncmp(str + idx, "\033[33m", 5) == 0) {idx += 5; ansiArr[chLen] = 4; break;} // ANSI_ESC_YELLOW
2751+
if(strncmp(str + idx, "\033[34m", 5) == 0) {idx += 5; ansiArr[chLen] = 5; break;} // ANSI_ESC_BLUE
2752+
if(strncmp(str + idx, "\033[35m", 5) == 0) {idx += 5; ansiArr[chLen] = 6; break;} // ANSI_ESC_MAGENTA
2753+
if(strncmp(str + idx, "\033[36m", 5) == 0) {idx += 5; ansiArr[chLen] = 7; break;} // ANSI_ESC_CYAN
2754+
if(strncmp(str + idx, "\033[37m", 5) == 0) {idx += 5; ansiArr[chLen] = 8; break;} // ANSI_ESC_WHITE
2755+
if(strncmp(str + idx, "\033[38;5;130m", 11) == 0) {idx += 11; ansiArr[chLen] = 9; break;} // ANSI_ESC_BROWN
2756+
if(strncmp(str + idx, "\033[38;5;214m", 11) == 0) {idx += 11; ansiArr[chLen] = 10; break;} // ANSI_ESC_ORANGE
2757+
if(strncmp(str + idx, "\033[90m", 5) == 0) {idx += 5; ansiArr[chLen] = 11; break;} // ANSI_ESC_GREY
2758+
if(strncmp(str + idx, "\033[91m", 5) == 0) {idx += 5; ansiArr[chLen] = 12; break;} // ANSI_ESC_LIGHTRED
2759+
if(strncmp(str + idx, "\033[92m", 5) == 0) {idx += 5; ansiArr[chLen] = 13; break;} // ANSI_ESC_LIGHTGREEN
2760+
if(strncmp(str + idx, "\033[93m", 5) == 0) {idx += 5; ansiArr[chLen] = 14; break;} // ANSI_ESC_LIGHTYELLOW
2761+
if(strncmp(str + idx, "\033[94m", 5) == 0) {idx += 5; ansiArr[chLen] = 15; break;} // ANSI_ESC_LIGHTBLUE
2762+
if(strncmp(str + idx, "\033[95m", 5) == 0) {idx += 5; ansiArr[chLen] = 16; break;} // ANSI_ESC_LIGHTMAGENTA
2763+
if(strncmp(str + idx, "\033[96m", 5) == 0) {idx += 5; ansiArr[chLen] = 17; break;} // ANSI_ESC_LIGHTCYAN
2764+
if(strncmp(str + idx, "\033[97m", 5) == 0) {idx += 5; ansiArr[chLen] = 18; break;} // ANSI_ESC_LIGHTGREY
2765+
if(strncmp(str + idx, "\033[38;5;52m", 10) == 0) {idx += 10; ansiArr[chLen] = 19; break;} // ANSI_ESC_DARKRED
2766+
if(strncmp(str + idx, "\033[38;5;22m", 10) == 0) {idx += 10; ansiArr[chLen] = 20; break;} // ANSI_ESC_DARKGREEN
2767+
if(strncmp(str + idx, "\033[38;5;136m", 11) == 0) {idx += 11; ansiArr[chLen] = 21; break;} // ANSI_ESC_DARKYELLOW
2768+
if(strncmp(str + idx, "\033[38;5;17m", 10) == 0) {idx += 10; ansiArr[chLen] = 22; break;} // ANSI_ESC_DARKBLUE
2769+
if(strncmp(str + idx, "\033[38;5;53m", 10) == 0) {idx += 10; ansiArr[chLen] = 23; break;} // ANSI_ESC_DARKMAGENTA
2770+
if(strncmp(str + idx, "\033[38;5;23m", 10) == 0) {idx += 10; ansiArr[chLen] = 24; break;} // ANSI_ESC_DARKCYAN
2771+
if(strncmp(str + idx, "\033[38;5;240m", 11) == 0) {idx += 11; ansiArr[chLen] = 25; break;} // ANSI_ESC_DARKGREY
2772+
if(strncmp(str + idx, "\033[38;5;166m", 11) == 0) {idx += 11; ansiArr[chLen] = 26; break;} // ANSI_ESC_DARKORANGE
2773+
if(strncmp(str + idx, "\033[38;5;215m", 11) == 0) {idx += 11; ansiArr[chLen] = 27; break;} // ANSI_ESC_LIGHTORANGE
2774+
if(strncmp(str + idx, "\033[38;5;129m", 11) == 0) {idx += 11; ansiArr[chLen] = 28; break;} // ANSI_ESC_PURPLE
2775+
if(strncmp(str + idx, "\033[38;5;213m", 11) == 0) {idx += 11; ansiArr[chLen] = 29; break;} // ANSI_ESC_PINK
2776+
if(strncmp(str + idx, "\033[38;5;190m", 11) == 0) {idx += 11; ansiArr[chLen] = 30; break;} // ANSI_ESC_LIME
2777+
if(strncmp(str + idx, "\033[38;5;25m", 10) == 0) {idx += 10; ansiArr[chLen] = 31; break;} // ANSI_ESC_NAVY
2778+
if(strncmp(str + idx, "\033[38;5;51m", 10) == 0) {idx += 10; ansiArr[chLen] = 32; break;} // ANSI_ESC_AQUAMARINE
2779+
if(strncmp(str + idx, "\033[38;5;189m", 11) == 0) {idx += 11; ansiArr[chLen] = 33; break;} // ANSI_ESC_LAVENDER
2780+
if(strncmp(str + idx, "\033[38;2;210;180;140m", 19) == 0) {idx += 19; ansiArr[chLen] = 34; break;} // ANSI_ESC_LIGHTBROWN
2781+
if(strncmp(str + idx, "\033[0m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_RESET unused
2782+
if(strncmp(str + idx, "\033[1m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_BOLD unused
2783+
if(strncmp(str + idx, "\033[2m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_FAINT unused
2784+
if(strncmp(str + idx, "\033[3m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_ITALIC unused
2785+
if(strncmp(str + idx, "\033[4m", 4) == 0) {idx += 4; ansiArr[chLen] = -1; break;} // ANSI_ESC_UNDERLINE unused
2786+
log_w("unknown ANSI ESC SEQUENCE"); {idx += 4; ansiArr[chLen] = -1; break;} // unknown
27862787
break;
27872788
case 0x20 ... 0x7F: // is ASCII
27882789
chArr[chLen] = (uint8_t)str[idx]; // codepoint
@@ -2991,6 +2992,7 @@ size_t TFT::writeText(const char* str, uint16_t win_X, uint16_t win_Y, int16_t w
29912992
if(ansiArr[idx] == 31) setTextColor(TFT_NAVY);
29922993
if(ansiArr[idx] == 32) setTextColor(TFT_AQUAMARINE);
29932994
if(ansiArr[idx] == 33) setTextColor(TFT_LAVENDER);
2995+
if(ansiArr[idx] == 34) setTextColor(TFT_LIGHTBROWN);
29942996
}
29952997
if(cnt == 0 && utfPosArr[idx] == 0x20) {
29962998
idx++;

0 commit comments

Comments
 (0)