diff --git a/exec/loadfont.js b/exec/loadfont.js index 3d4b7234b7d75cdfa421186fd740525669a904a9..c43de0ce6530d1e3b5caf40fb3a67f4a6e645c47 100644 --- a/exec/loadfont.js +++ b/exec/loadfont.js @@ -9,6 +9,7 @@ load("sbbsdefs.js"); loadfont(); +var CTerm_Version; function loadfont() { @@ -66,7 +67,7 @@ function loadfont() // Check if it's CTerm and supports font loading... var ver=new Array(0,0); - if(console.terminal.substr(0,6) != 'CTerm;') { + if(CTerm_Version == undefined) { // Disable parsed input... we need to do ESC processing ourselves here. var oldctrl=console.ctrlkey_passthru; console.ctrlkey_passthru=-1; @@ -87,12 +88,14 @@ function loadfont() // alert("Response: "+printable); if(response.substr(0,21) != "\x1b[=67;84;101;114;109;") { // Not CTerm + CTerm_Version=0; console.ctrlkey_passthru=oldctrl; if(showprogress) writeln("Not detected."); return(0); } if(response.substr(-1) != "c") { // Not a DA + CTerm_Version=0; console.ctrlkey_passthru=oldctrl; if(showprogress) writeln("Not detected."); @@ -100,12 +103,13 @@ function loadfont() } var version=response.substr(21); version=version.replace(/c/,""); + CTerm_Version=version; ver=version.split(/;/); console.terminal="CTerm;"+ver.join(";"); console.ctrlkey_passthru=oldctrl; } else { - ver=console.terminal.substr(6).split(/;/); + ver=CTerm_Version.split(/;/); if(parseInt(ver[0]) < 1 || (parseInt(ver[0])==1 && parseInt(ver[1]) < 61)) { // Too old for dynamic fonts if(showprogress) diff --git a/exec/pickfont.js b/exec/pickfont.js index 2457953e3f87e7a2ef12ee4113edc2cba4030003..b3c6373d64a23c5ba0f0a3306dce80dac1f2a200 100644 --- a/exec/pickfont.js +++ b/exec/pickfont.js @@ -3,6 +3,7 @@ // If nothing passed, changes to font 0 (CP437) pickfont(); +var CTerm_Version; function pickfont() { @@ -20,7 +21,7 @@ function pickfont() // Check if it's CTerm and supports font loading... var ver=new Array(0,0); - if(console.terminal.substr(0,6) != 'CTerm;') { + if(CTerm_Version==undefined) { if(detect) { // Disable parsed input... we need to do ESC processing ourselves here. var oldctrl=console.ctrlkey_passthru; @@ -42,22 +43,25 @@ function pickfont() // alert("Response: "+printable); if(response.substr(0,21) != "\x1b[=67;84;101;114;109;") { // Not CTerm + CTerm_Version=0; console.ctrlkey_passthru=oldctrl; return(0); } if(response.substr(-1) != "c") { // Not a DA + CTerm_Version=0; console.ctrlkey_passthru=oldctrl; return(0); } var version=response.substr(21); version=version.replace(/c/,""); + CTerm_Version=version; ver=version.split(/;/); console.terminal="CTerm;"+ver.join(";"); console.ctrlkey_passthru=oldctrl; } } else { - ver=console.terminal.substr(6).split(/;/); + ver=CTerm_Version.split(/;/); if(parseInt(ver[0]) < 1 || (parseInt(ver[0])==1 && parseInt(ver[1]) < 61)) { // Too old for dynamic fonts return(0);