diff options
author | John Beppu | 2000-06-12 23:39:04 +0000 |
---|---|---|
committer | John Beppu | 2000-06-12 23:39:04 +0000 |
commit | c7ccfc99fc3ce621cc3739896493670316184dec (patch) | |
tree | b7b02e5968fb4db92de8b2cf2645d1a6e44ef463 /findutils/grep.c | |
parent | 9f16d614083a96b521cbbca6d5c0b33da91991c4 (diff) | |
download | busybox-c7ccfc99fc3ce621cc3739896493670316184dec.zip busybox-c7ccfc99fc3ce621cc3739896493670316184dec.tar.gz |
+ utility.c
CSTRING_BUFFER_LENGTH = 1024 /* so it recurses less often */
+ grep.c
uses cstring_lineFromFile(), and doesn't ever say
Line is too long, anymore
Diffstat (limited to 'findutils/grep.c')
-rw-r--r-- | findutils/grep.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/findutils/grep.c b/findutils/grep.c index 6872ac2..bb1a146 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -65,16 +65,13 @@ static void do_grep(FILE * fp, char *needle, char *fileName, int tellName, { char *cp; long line = 0; - char haystack[BUF_SIZE]; + char *haystack; int truth = !invertSearch; - while (fgets(haystack, sizeof(haystack), fp)) { + while ((haystack = cstring_lineFromFile(fp))) { line++; cp = &haystack[strlen(haystack) - 1]; - if (*cp != '\n') - fprintf(stderr, "%s: Line too long\n", fileName); - if (find_match(haystack, needle, ignoreCase) == truth) { if (tellName == TRUE) printf("%s:", fileName); @@ -87,6 +84,7 @@ static void do_grep(FILE * fp, char *needle, char *fileName, int tellName, match = TRUE; } + free(haystack); } } |