mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-25 15:10:28 +00:00
loop
This commit is contained in:
parent
34c740feff
commit
c1e8995a69
1 changed files with 43 additions and 24 deletions
|
@ -269,23 +269,28 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
if (*ptr == ANSI_CSI) {
|
if (*ptr == ANSI_CSI) {
|
||||||
ptr++;
|
ptr++;
|
||||||
I64 ansi_code = 0;
|
I64 ansi_code = 0;
|
||||||
I64 x_code = 0;
|
I64 x_code = 1;
|
||||||
I64 y_code = 0;
|
I64 y_code = 1;
|
||||||
Bool parsing_y = FALSE;
|
Bool parsing_y = FALSE;
|
||||||
while (IsDigit(*ptr) || *ptr == ';') {
|
while (IsDigit(*ptr) || *ptr == ';') {
|
||||||
if (IsDigit(*ptr)) {
|
if (IsDigit(*ptr)) {
|
||||||
ansi_code = ansi_code * 10 + (*ptr - '0');
|
ansi_code = ansi_code * 10 + (*ptr - '0');
|
||||||
|
SysLog("ANSICODE: %d\n", ansi_code);
|
||||||
if (!parsing_y) {
|
if (!parsing_y) {
|
||||||
x_code = x_code * 10 + (*ptr - '0');
|
x_code = x_code * 10 + (*ptr - '0');
|
||||||
|
SysLog("row: %d\n", x_code);
|
||||||
} else {
|
} else {
|
||||||
y_code = y_code * 10 + (*ptr - '0');
|
y_code = y_code * 10 + (*ptr - '0');
|
||||||
|
SysLog("col: %d\n", y_code);
|
||||||
}
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
else if (*ptr == ';') {
|
else if (*ptr == ';') {
|
||||||
parsing_y = TRUE;
|
parsing_y = TRUE;
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
if(!IsDigit(*ptr)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle specific ANSI escape sequences
|
// Handle specific ANSI escape sequences
|
||||||
|
@ -311,13 +316,13 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
ptr++;
|
ptr++;
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
I64 color_code;
|
// I64 fg_code, bg_code;
|
||||||
if (ansi_code >= 30 && ansi_code <= 37) {
|
// if (x_code >= 30 && x_code <= 37) {
|
||||||
color_code = ansi_code - 30; // Set foreground color
|
// fg_code = x_code - 30; // Set foreground color
|
||||||
} else if (ansi_code >= 40 && ansi_code <= 47) {
|
// } else if (y_code >= 40 && y_code <= 47) {
|
||||||
color_code = ansi_code - 40; // Set background color
|
// bg_code = y_code - 40; // Set background color
|
||||||
}
|
// }
|
||||||
else if (ansi_code < 10) {
|
if (ansi_code <= 10) {
|
||||||
switch (ansi_code) {
|
switch (ansi_code) {
|
||||||
case 0: "$$BG$$$$FG$$"; break; // reset
|
case 0: "$$BG$$$$FG$$"; break; // reset
|
||||||
// case 1: ""; break; // TODO: bold
|
// case 1: ""; break; // TODO: bold
|
||||||
|
@ -332,16 +337,30 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
// case 10: ""; break; // TODO: primary font
|
// case 10: ""; break; // TODO: primary font
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (color_code) {
|
switch (x_code) {
|
||||||
case 0: "$$BLACK$$"; break;
|
case 30: "$$BLACK$$"; break;
|
||||||
case 1: "$$RED$$"; break;
|
case 31: "$$RED$$"; break;
|
||||||
case 2: "$$GREEN$$"; break;
|
case 32: "$$GREEN$$"; break;
|
||||||
case 3: "$$YELLOW$$"; break;
|
case 33: "$$YELLOW$$"; break;
|
||||||
case 4: "$$BLUE$$"; break;
|
case 34: "$$BLUE$$"; break;
|
||||||
case 5: "$$PURPLE$$"; break;
|
case 35: "$$PURPLE$$"; break;
|
||||||
case 6: "$$CYAN$$"; break;
|
case 36: "$$CYAN$$"; break;
|
||||||
case 7: "$$WHITE$$"; break;
|
case 37: "$$WHITE$$"; break;
|
||||||
case 8: "$$BG$$$$FG$$"; break; // reset
|
case 39: "$$BFG$$"; break; // reset
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
// this is a dumb approach, just do a CatPrint or something
|
||||||
|
// until we properly catch the `;` it will stay fucked
|
||||||
|
switch (y_code) {
|
||||||
|
case 40: "$$BG,BLACK$$"; break;
|
||||||
|
case 41: "$$BG,RED$$"; break;
|
||||||
|
case 42: "$$BG,GREEN$$"; break;
|
||||||
|
case 43: "$$BG,YELLOW$$"; break;
|
||||||
|
case 44: "$$BG,BLUE$$"; break;
|
||||||
|
case 45: "$$BG,PURPLE$$"; break;
|
||||||
|
case 46: "$$BG,CYAN$$"; break;
|
||||||
|
case 47: "$$BG,WHITE$$"; break;
|
||||||
|
case 49: "$$BG$$"; break; // reset
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
|
@ -511,8 +530,8 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
// code[0] = ptr++;
|
// code[0] = ptr++;
|
||||||
// code[1] = ptr++;
|
// code[1] = ptr++;
|
||||||
// code[2] = '\0';
|
// code[2] = '\0';
|
||||||
// I64 color_code = ToI64(code);
|
// I64 fg_code = ToI64(code);
|
||||||
// AppendColorString(color_code);
|
// AppendColorString(fg_code);
|
||||||
SysLog("Pipe code: %c%c\n", ptr[1], ptr[2]);
|
SysLog("Pipe code: %c%c\n", ptr[1], ptr[2]);
|
||||||
ptr += 3; // Skip the pipe code characters
|
ptr += 3; // Skip the pipe code characters
|
||||||
// ptr++;
|
// ptr++;
|
||||||
|
|
Loading…
Reference in a new issue