grep: Reuse allocated buffers
This commit is contained in:
parent
7e8fcc1f03
commit
fb85f99c0a
12
grep.c
12
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user