From ce108b52438d07f19ec3efc8d60d77936951b38d Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Debian Linux)" <rob@synchro.net> Date: Fri, 18 Apr 2025 17:16:05 -0700 Subject: [PATCH] Add 'indent_list_items' option For use when multi/singlecolumn_fmt strings don't contain padded integer specifiers (e.g. %3u). Fix issue #911 --- exec/xtrn_sec.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/exec/xtrn_sec.js b/exec/xtrn_sec.js index b11dfe1850..7755f99079 100644 --- a/exec/xtrn_sec.js +++ b/exec/xtrn_sec.js @@ -96,7 +96,7 @@ function digits(n) { if (n/10 == 0) return 1; - return 1 + digits(n / 10); + return 1 + digits(Math.floor(n / 10)); } function external_program_menu(xsec) @@ -177,12 +177,15 @@ function external_program_menu(xsec) else n=prog_list.length; + var max_digits = digits(prog_list.length); for(i=0;i<n && !console.aborted;i++) { write(margin); var hotspot = i+1; if(digits(hotspot) < digits(prog_list.length)) hotspot += '\r'; console.add_hotspot(hotspot); + if(options.indent_list_items) + printf("%*s", max_digits - digits(i + 1), ""); // Indent to right justify number printf(multicolumn ? options.multicolumn_fmt : options.singlecolumn_fmt ,i+1 ,prog_list[i].name @@ -196,6 +199,8 @@ function external_program_menu(xsec) if(digits(hotspot) < digits(prog_list.length)) hotspot += '\r'; console.add_hotspot(hotspot); + if(options.indent_list_items) + printf("%*s", max_digits - digits(j + 1), ""); // Indent to right justify number printf(options.multicolumn_fmt, j+1 ,prog_list[j].name ,prog_list[j].cost); -- GitLab