diff --git a/exec/xtrn_sec.js b/exec/xtrn_sec.js index 428f01c60f84e10a76fc89a83f7c59cd0bcb671b..03c2b9175ef940a20d3724dd03fe6f8dde4b4a03 100644 --- a/exec/xtrn_sec.js +++ b/exec/xtrn_sec.js @@ -92,6 +92,13 @@ function sort_by_name(a, b) return 0; } +function digits(n) +{ + if (n/10 == 0) + return 1; + return 1 + digits(n / 10); +} + function external_program_menu(xsec) { var i,j; @@ -172,7 +179,10 @@ function external_program_menu(xsec) for(i=0;i<n && !console.aborted;i++) { write(margin); - console.add_hotspot(i+1); + var hotspot = i+1; + if(digits(hotspot) < digits(prog_list.length)) + hotspot += '\r'; + console.add_hotspot(hotspot); printf(multicolumn ? options.multicolumn_fmt : options.singlecolumn_fmt ,i+1 ,prog_list[i].name @@ -182,7 +192,10 @@ function external_program_menu(xsec) j=Math.floor(prog_list.length/2)+i+(prog_list.length&1); if(j<prog_list.length) { write(options.multicolumn_separator); - console.add_hotspot(j+1); + hotspot = j+1; + if(digits(hotspot) < digits(prog_list.length)) + hotspot += '\r'; + console.add_hotspot(hotspot); printf(options.multicolumn_fmt, j+1 ,prog_list[j].name ,prog_list[j].cost);