sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 7f7e7dcbb92151e8d0793e62599ffc4c63ec28df
parent 2e1580ed2dd9dd81e1c63ff52d906fdeafbb1fe6
Author: Jakob Kramer <jakob.kramer@gmx.de>
Date:   Wed,  4 Jun 2014 17:46:22 +0200

cols: simplify filling with spaces

Use printf("%*s", n, "") instead of allocating
a string filled with spaces.

Diffstat:
Mcols.c | 15+++++----------
1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/cols.c b/cols.c @@ -26,8 +26,8 @@ int main(int argc, char *argv[]) { long i, l, col; - size_t maxlen = 0; - char *space; + size_t len; + int maxlen = 0; struct winsize w; FILE *fp; @@ -59,7 +59,7 @@ main(int argc, char *argv[]) } for(l = 0; l < b.nlines; ++l) { - size_t len = strlen(b.lines[l]); + len = strlen(b.lines[l]); if(len > 0 && b.lines[l][len-1] == '\n') b.lines[l][--len] = '\0'; if(len > maxlen) @@ -76,21 +76,16 @@ main(int argc, char *argv[]) return EXIT_SUCCESS; } - if(!(space = malloc(maxlen + 2))) - eprintf("malloc:"); - memset(space, ' ', maxlen + 1); - space[maxlen + 1] = '\0'; - n_rows = (b.nlines + (n_columns - 1)) / n_columns; for(i = 0; i < n_rows; ++i) { for(l = i, col = 1; l < b.nlines; l += n_rows, ++col) { + len = strlen(b.lines[l]); fputs(b.lines[l], stdout); if(col < n_columns) - fputs(space + strlen(b.lines[l]), stdout); + printf("%*s", maxlen + 1 - (int)len, ""); } fputs("\n", stdout); } - free(space); return EXIT_SUCCESS; }