sbase

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

commit 2e1580ed2dd9dd81e1c63ff52d906fdeafbb1fe6
parent 7d1fd2621ed35fc3eb066e5ff4b886710b5564f8
Author: Jakob Kramer <jakob.kramer@gmx.de>
Date:   Tue,  3 Jun 2014 00:15:52 +0200

remove unnecessary calls to realloc from tee

Diffstat:
Mtee.c | 19+++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/tee.c b/tee.c @@ -16,7 +16,7 @@ main(int argc, char *argv[]) { bool aflag = false; char buf[BUFSIZ]; - int i, nfps = 1; + int i, nfps; size_t n; FILE **fps = NULL; @@ -28,16 +28,15 @@ main(int argc, char *argv[]) usage(); } ARGEND; - if(!(fps = malloc(sizeof *fps))) - eprintf("malloc:"); - fps[nfps-1] = stdout; + nfps = argc + 1; + if(!(fps = calloc(nfps, sizeof *fps))) + eprintf("calloc:"); + + for(i = 0; argc > 0; argc--, argv++, i++) + if(!(fps[i] = fopen(*argv, aflag ? "a" : "w"))) + eprintf("fopen %s:", *argv); + fps[i] = stdout; - for(; argc > 0; argc--, argv++) { - if(!(fps = realloc(fps, ++nfps * sizeof *fps))) - eprintf("realloc:"); - if(!(fps[nfps-1] = fopen(argv[0], aflag ? "a" : "w"))) - eprintf("fopen %s:", argv[0]); - } while((n = fread(buf, 1, sizeof buf, stdin)) > 0) { for(i = 0; i < nfps; i++) { if(fwrite(buf, 1, n, fps[i]) != n)