Skip to content

Commit

Permalink
Pitfall?
Browse files Browse the repository at this point in the history
  • Loading branch information
veniware committed May 14, 2024
1 parent 263ce75 commit b9cf7d5
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions Protest/Front/telnet.js
Original file line number Diff line number Diff line change
Expand Up @@ -505,15 +505,15 @@ class Telnet extends Window {
}

HandleEscSequence(data, index) { //Control Sequence Introducer
if (data[index+1] === "[" || data[index+1] === "\x9b") {
if (data[index+1] === "[") {
return this.HandleCSI(data, index);
}

if (data[index+1] === "P" || data[index+1] === "\x90") {
if (data[index+1] === "P") {
return this.HandleDCS(data, index);
}

if (data[index+1] === "]" || data[index+1] === "\x9d") {
if (data[index+1] === "]") {
return this.HandleOSC(data, index);
}

Expand All @@ -524,17 +524,29 @@ class Telnet extends Window {
HandleCSI(data, index) { //Control Sequence Introducer
if (index >= data.length) return 2;

//console.log(data[index], data[index+1], data[index+2], data[index+3], data[index+4], data[index+5], data[index+6], data[index+7]);

let symbol = null;
let values = [];
let command = null;

let i = index + 2;
while (i < data.length) {
if (this.IsLetter(data, i)) { //command

//console.log(i);
//console.log(data[i], data[i+1], data[i+2], data[i+3], data[i+4], data[i+5], data[i+6], data[i+7]);

if (data.charCodeAt(i) > 0x3f && data.charCodeAt(i) < 0x7f) { //command byte
command = data[i++];
break;
}

if (data[i] === ";") {
i++;
//values.push(0);
continue;
}

if (!isNaN(data[i])) { //number
let n = parseInt(data[i]);
while (!isNaN(data[++i]) && i < data.length) {
Expand All @@ -557,6 +569,10 @@ class Telnet extends Window {
i++;
}

/*if (values.length === 0) {
values.push(null);
}*/

//common private modes
if (symbol === "?") {
if (values.length === 1 && values[0] === 25) {
Expand Down Expand Up @@ -608,7 +624,6 @@ class Telnet extends Window {
if (values.length === 0) {
this.cursor.x = 0;
this.cursor.y = 0;
return 3;
}
else if (values.length > 1) {
this.cursor.x = values[1];
Expand All @@ -619,43 +634,34 @@ class Telnet extends Window {
case "J":
if (values.length === 0) { //same as J0
this.EraseFromCursorToEndOfScreen();
return 3;
}
if (values[0] === 0) {
this.EraseFromCursorToEndOfScreen();
return 4;
}
else if (values[0] === 1) {
this.EraseFromCursorToBeginningOfScreen();
return 4;
}
else if (values[0] === 2) {
this.ClearScreen();
return 4;
}
else if (values[0] === 3) {
this.ClearScreen();
//TODO: clear screen and buffer
return 4;
}
break;

case "K":
if (values.length === 0) { //same as K0
this.EraseLineFromCursorToEnd();
return 3;
}
if (values[0] === 0) {
this.EraseLineFromCursorToEnd();
return 4;
}
if (values[0] === 1) {
this.EraseLineFromBeginningToCursor();
return 4;
}
if (values[0] === 2) {
this.ClearLine();
return 4;
}
break;

Expand Down Expand Up @@ -879,13 +885,6 @@ class Telnet extends Window {
return `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}`;
}

IsLetter(string, index) {
const code = string.charCodeAt(index);
if (code > 64 && code < 91) return true;
if (code > 96 && code < 123) return true;
return false;
}

ClearLine() {
const w = this.GetScreenWidth();
for (let i=0; i<w; i++) {
Expand Down

0 comments on commit b9cf7d5

Please sign in to comment.