From 773f948a2b2b6cd54a50a9f3eed8b12f4746be6d Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Sun, 14 Oct 2018 14:12:59 -0400 Subject: finally get columnar output working --- color-ls.awk | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/color-ls.awk b/color-ls.awk index 33b2211..2399736 100755 --- a/color-ls.awk +++ b/color-ls.awk @@ -35,23 +35,18 @@ BEGIN { } function columns_output() { - widest++; - column = 0; - ncolumns = columns / widest; + width = widest + 1; # include a space + printfwidth = width + 9; # account for color escape sequences + ncolumns = int(columns / width); + nrows = int(NR / ncolumns) + 1; - for (i = 1; i <= NR; i++) { - # FIXME: this is all jacked up - printf("%-*s", widest, file[(row * ncolumns) + (i % ncolumns)]); - column += widest; - if (column > columns) { - printf("\n"); - column = 0; - row++; + for (row = 0; row < nrows; row++) { + for (column = 0; column < ncolumns; column++) { + f = (column * nrows) + row + 1; + if (f <= NR) { + printf("%-*s", printfwidth, file[f]); + } } - i++; - } - - if (column != 0) { printf("\n"); } } -- cgit v1.2.1