diff --git a/exec/loadfont.js b/exec/loadfont.js index 26d6e36aa771441c4353502957d51b0fd6c23e0e..b358f9f094f8842f3e176c79c264d8526fd483c5 100644 --- a/exec/loadfont.js +++ b/exec/loadfont.js @@ -3,12 +3,14 @@ * Supported arguments: * -H causes the last sent font NOT be made active. (Default is activate font) * -S### sets the first font slot to ### default is 256 - number of fonts + * -P shows progress indicator. * Multiple files can be sent at the same time. */ load("sbbsdefs.js"); var filenames=new Array(); var showfont=true; +var showprogress=false; var firstslot=-1; var i; @@ -21,6 +23,9 @@ for(i=0; i<argc; i++) { case 'S': /* First font slot */ firstslot=parseInt(argv[i].substr(2)); break; + case 'P': /* Show progress indicator */ + showprogress=true; + break; } } else { @@ -54,8 +59,13 @@ if(firstslot < 32) { var oldctrl=console.ctrlkey_passthru; console.ctrlkey_passthru=-1; +if(showprogress) { + writeln(); + write("Detecting font support... "); +} + // Check if it's CTerm and supports font loading... -console.write("\x1b[c"); +write("\x1b[c"); var response=''; while(1) { @@ -69,10 +79,14 @@ while(1) { if(response.substr(0,21) != "\x1b[=67;84;101;114;109;") { // Not CTerm console.ctrlkey_passthru=oldctrl; + if(showprogress) + writeln("Not detected."); exit(0); } if(response.substr(-1) != "c") { // Not a DA console.ctrlkey_passthru=oldctrl; + if(showprogress) + writeln("Not detected."); exit(0); } var version=response.substr(21); @@ -81,9 +95,15 @@ var ver=version.split(/;/); if(parseInt(ver[0]) < 1 || (parseInt(ver[0])==1 && parseInt(ver[1]) < 61)) { // Too old for dynamic fonts console.ctrlkey_passthru=oldctrl; + if(showprogress) + writeln("Not detected."); exit(0); } +if(showprogress) { + writeln("Detected!"); + write("Loading fonts..."); +} for (i in filenames) { var font=new File(filenames[i]); @@ -124,10 +144,10 @@ for (i in filenames) { continue; } - console.write("\x1b[="+(firstslot+parseInt(i))+";"+fontsize+"{"); + write("\x1b[="+(firstslot+parseInt(i))+";"+fontsize+"{"); // This doesn't send it all... - // console.write(fontdata); + // write(fontdata); while(console.output_buffer_level) mswait(1); if(!(console.telnet_mode & TELNET_MODE_OFF)) @@ -137,7 +157,11 @@ for (i in filenames) { fontdata=fontdata.substr(1024); } font.close(); + if(showprogress) + write("."); } +if(showprogress) + writeln("done."); if(showfont) - console.write("\x1b[0;"+(firstslot+filenames.length-1)+" D"); + write("\x1b[0;"+(firstslot+filenames.length-1)+" D"); console.ctrlkey_passthru=oldctrl;