Skip to content
Snippets Groups Projects
Commit 3d87546c authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Add support for looping through fonts (-l option) with pause (-p)

Cleaned-up the font filename weirdness in the lib.
parent dc6caaf2
No related branches found
No related tags found
No related merge requests found
...@@ -36,7 +36,7 @@ function loadfont(fn_arg) { ...@@ -36,7 +36,7 @@ function loadfont(fn_arg) {
// Construct font file path // Construct font file path
if (fn_arg.indexOf('/') === -1) { if (fn_arg.indexOf('/') === -1) {
if (fn_arg.indexOf('.') !== -1) { if (file_getext(fn_arg)) {
fn = file_getcase(FONT_DIR + fn_arg); fn = file_getcase(FONT_DIR + fn_arg);
} else { } else {
fn = file_getcase(FONT_DIR + fn_arg + "." + FONT_EXT); fn = file_getcase(FONT_DIR + fn_arg + "." + FONT_EXT);
...@@ -339,17 +339,19 @@ function reset_color() ...@@ -339,17 +339,19 @@ function reset_color()
return "\x1b[0m"; return "\x1b[0m";
} }
function getlist() {
return directory(FONT_DIR + "*." + FONT_EXT); // Get all .tdf files
}
function output(str, font) { function output(str, font) {
var orgfont = font; var orgfont = font;
while (true) { while (true) {
try { try {
if (!font) { // Random font file selection if (!font) { // Random font file selection
var fontDir = FONT_DIR; var files = getlist();
var files = directory(fontDir + "/*.tdf"); // Get all .tdf files
if (files.length > 0) { if (files.length > 0) {
var randomIndex = random((files.length)+1); var randomIndex = random((files.length)+1);
var filename = file_getname(files[randomIndex]); font = file_getname(files[randomIndex]);
font = filename.replace(/\.tdf$/i, "");
} }
} }
if (typeof font == "string") if (typeof font == "string")
......
...@@ -22,6 +22,8 @@ function usage() { ...@@ -22,6 +22,8 @@ function usage() {
writeln(" -n No blank line between wrapped output lines"); writeln(" -n No blank line between wrapped output lines");
writeln(" -W Always word-wrap the output"); writeln(" -W Always word-wrap the output");
writeln(" -i Print font details"); writeln(" -i Print font details");
writeln(" -l Loop through the available fonts");
writeln(" -p Pause between fonts");
writeln(" -r Use random font and/or index (if not specified with -x)"); writeln(" -r Use random font and/or index (if not specified with -x)");
writeln(" -R Use random font and auto-retry upon exception"); writeln(" -R Use random font and auto-retry upon exception");
writeln(" -h Print usage"); writeln(" -h Print usage");
...@@ -30,7 +32,8 @@ function usage() { ...@@ -30,7 +32,8 @@ function usage() {
} }
var fontfile = null; var fontfile = null;
var loopfonts = false;
var pause = false;
var input_string = ""; var input_string = "";
for(i = 0; i < argv.length; ++i) { for(i = 0; i < argv.length; ++i) {
var arg = argv[i]; var arg = argv[i];
...@@ -69,6 +72,10 @@ for(i = 0; i < argv.length; ++i) { ...@@ -69,6 +72,10 @@ for(i = 0; i < argv.length; ++i) {
tdf.opt.utf8 = true; tdf.opt.utf8 = true;
} else if (arg === "-i") { } else if (arg === "-i") {
tdf.opt.info = true; tdf.opt.info = true;
} else if (arg === "-l") {
loopfonts = true;
} else if (arg === "-p") {
pause = true;
} else if (arg === "-r") { } else if (arg === "-r") {
tdf.opt.random = true; tdf.opt.random = true;
} else if (arg === "-R") { } else if (arg === "-R") {
...@@ -85,10 +92,23 @@ for(i = 0; i < argv.length; ++i) { ...@@ -85,10 +92,23 @@ for(i = 0; i < argv.length; ++i) {
} }
} }
if (!fontfile && !tdf.opt.random) if (!fontfile && !tdf.opt.random && !loopfonts)
usage(); usage();
if (!input_string) if (!input_string)
usage(); usage();
if (loopfonts) {
var list = tdf.getlist();
for (var i in list) {
if (pause && i > 0)
prompt("Hit enter");
try {
tdf.printstr(input_string, list[i]);
} catch(e) {
if (tdf.opt.info)
print("exception: " + e);
}
}
} else
tdf.printstr(input_string, fontfile); tdf.printstr(input_string, fontfile);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment