sbase

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

commit fb85f99c0a5bb330178d29d582aedc07b1a0f5db
parent 7e8fcc1f037f2d9339cb5f4e0da6eeefde152525
Author: sin <sin@2f30.org>
Date:   Tue Dec 16 20:20:41 +0000

grep: Reuse allocated buffers

Diffstat:
grep.c | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/grep.c b/grep.c @@ -177,15 +177,15 @@ addpattern(const char *pattern) static void addpatternfile(FILE *fp) { - char *buf = NULL; - size_t len = 0, size = 0; + static char *buf = NULL; + static size_t size = 0; + size_t len = 0; while ((len = getline(&buf, &size, fp)) != -1) { if (len && buf[len - 1] == '\n') buf[len - 1] = '\0'; addpattern(buf); } - free(buf); if (ferror(fp)) enprintf(Error, "read error:"); } @@ -193,8 +193,9 @@ addpatternfile(FILE *fp) static int grep(FILE *fp, const char *str) { - char *buf = NULL; - size_t len = 0, size = 0; + static char *buf = NULL; + static size_t size = 0; + size_t len = 0; long c = 0, n; struct pattern *pnode; int match = NoMatch; @@ -250,6 +251,5 @@ end: weprintf("%s: read error:", str); match = Error; } - free(buf); return match; }