mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-25 15:10:28 +00:00
update
This commit is contained in:
parent
1203145d14
commit
7407b2584e
1 changed files with 15 additions and 6 deletions
|
@ -245,7 +245,7 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
while (*ptr) {
|
while (*ptr) {
|
||||||
// Telnet negotiation sequence
|
// Telnet negotiation sequence
|
||||||
if (*ptr == NEGOTIATE) {
|
if (*ptr == NEGOTIATE) {
|
||||||
// include TelnetNegotiation.ZC here i guess
|
// FIXME: i don't think the telnet negotiation is actually working properly?
|
||||||
TelnetNegotiate(sock, ptr);
|
TelnetNegotiate(sock, ptr);
|
||||||
ptr += 3;
|
ptr += 3;
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
// Respond with cursor position
|
// Respond with cursor position
|
||||||
// U8 response[32] = "\x1B[%d;%dR", window_width, window_height;
|
// U8 response[32] = "\x1B[%d;%dR", window_width, window_height;
|
||||||
SysLog("reported cursor position\n");
|
SysLog("reported cursor position\n");
|
||||||
U8 cursorResponse[32];
|
U8 cursorResponse[8];
|
||||||
cursorResponse[0] = ANSI_ESC;
|
cursorResponse[0] = ANSI_ESC;
|
||||||
cursorResponse[1] = ANSI_CSI;
|
cursorResponse[1] = ANSI_CSI;
|
||||||
cursorResponse[2] = 0x32;
|
cursorResponse[2] = 0x32;
|
||||||
|
@ -310,6 +310,11 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
TCPSocketSend(sock, cursorResponse, 7);
|
TCPSocketSend(sock, cursorResponse, 7);
|
||||||
// TCPSocketSendString(sock, "\x1B\[25;80R");
|
// TCPSocketSendString(sock, "\x1B\[25;80R");
|
||||||
}
|
}
|
||||||
|
else if (ansi_code[0] == 255) {
|
||||||
|
// https://github.com/NuSkooler/enigma-bbs/blob/97cd0c3063b0c9f93a0fa4a44a85318ca81aef43/core/ansi_term.js#L140
|
||||||
|
SysLog("reported screensize?\n");
|
||||||
|
SendWindowSize(sock, 25, 80);
|
||||||
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
|
@ -337,7 +342,7 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
for (m = 0; m < ansi_param_count; m++) {
|
for (m = 0; m < ansi_param_count; m++) {
|
||||||
if (ansi_code[m] <= 10) {
|
if (ansi_code[m] <= 10) {
|
||||||
switch (ansi_code[m]) {
|
switch (ansi_code[m]) {
|
||||||
case 0: "$$BG,BLACK$$$$WHITE$$"; break; // reset
|
case 0: "$$BG,BLACK$$$$WHITE$$"; isBright = FALSE; break; // reset
|
||||||
case 1: isBright = TRUE; break;
|
case 1: isBright = TRUE; break;
|
||||||
case 2: isBright = FALSE; break;
|
case 2: isBright = FALSE; break;
|
||||||
// case 0: "$$BG$$$$FG$$"; break; // reset
|
// case 0: "$$BG$$$$FG$$"; break; // reset
|
||||||
|
@ -502,7 +507,7 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
if(ansi_code[1] != 1)
|
if(ansi_code[1] != 1)
|
||||||
col = ansi_code[1];
|
col = ansi_code[1];
|
||||||
|
|
||||||
// TODO: This is a hack, dont skip row 0, col 0
|
// TODO: This is a hack, dont skip row 0, col 0 (maybe?)
|
||||||
if (row == 0 && col == 0) {
|
if (row == 0 && col == 0) {
|
||||||
ptr++;
|
ptr++;
|
||||||
break;
|
break;
|
||||||
|
@ -533,7 +538,8 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
ptr++;
|
ptr++;
|
||||||
break;
|
break;
|
||||||
case 'K':
|
case 'K':
|
||||||
SysLog("K code");
|
SysLog("K code\n");
|
||||||
|
// TODO: I have no idea if this actually works
|
||||||
// Erase in Line
|
// Erase in Line
|
||||||
CDocEntry *cur_entry = Fs->display_doc->cur_entry;
|
CDocEntry *cur_entry = Fs->display_doc->cur_entry;
|
||||||
CDocEntry *next_entry = cur_entry->next;
|
CDocEntry *next_entry = cur_entry->next;
|
||||||
|
@ -549,6 +555,10 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
CDocEntry *new_entry = DocEntryNewTag(Fs->display_doc, cur_entry, "");
|
CDocEntry *new_entry = DocEntryNewTag(Fs->display_doc, cur_entry, "");
|
||||||
DocInsEntry(Fs->display_doc, new_entry);
|
DocInsEntry(Fs->display_doc, new_entry);
|
||||||
|
|
||||||
|
ptr++;
|
||||||
|
break;
|
||||||
|
case 'L':
|
||||||
|
SysLog("L code\n");
|
||||||
ptr++;
|
ptr++;
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
|
@ -575,7 +585,6 @@ U0 Telnet(U8 *host, U16 port=TELNET_PORT) {
|
||||||
code = code * 10 + (*ptr - '0');
|
code = code * 10 + (*ptr - '0');
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 25:
|
case 25:
|
||||||
if (*ptr == 'l') DocCursor(OFF); // Hide cursor
|
if (*ptr == 'l') DocCursor(OFF); // Hide cursor
|
||||||
|
|
Loading…
Reference in a new issue