mirror of
https://git.busybox.net/busybox.git
synced 2024-11-28 16:13:40 +08:00
Added grep -q, thanks to a patch from "Konstantin Boldyshev" <konst@voshod.com>
-Erik
This commit is contained in:
parent
d387d01f11
commit
3fe2ecf0d9
@ -7,6 +7,8 @@
|
||||
* Fixed the embarrasing failure of the -p opition in the logger app. -erik
|
||||
* Re-worked the whole source tree a bit so it will compile under glibc 2.0.7
|
||||
with the 2.0.x Linux kernel.
|
||||
* Added 'grep -q' thanks to a patch from "Konstantin Boldyshev"
|
||||
<konst@voshod.com>.
|
||||
|
||||
-Erik Andersen
|
||||
|
||||
|
@ -21,6 +21,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
18-Dec-1999 Konstantin Boldyshev <konst@voshod.com>
|
||||
|
||||
+ -q option (be quiet)
|
||||
+ exit code depending on grep result (TRUE or FALSE)
|
||||
(useful for scripts)
|
||||
*/
|
||||
|
||||
#include "internal.h"
|
||||
#include "regexp.h"
|
||||
#include <stdio.h>
|
||||
@ -37,13 +45,15 @@ static const char grep_usage[] =
|
||||
"OPTIONS:\n"
|
||||
"\t-h\tsuppress the prefixing filename on output\n"
|
||||
"\t-i\tignore case distinctions\n"
|
||||
"\t-n\tprint line number with output lines\n\n"
|
||||
"\t-n\tprint line number with output lines\n"
|
||||
"\t-q\tbe quiet\n\n"
|
||||
#if defined BB_REGEXP
|
||||
"This version of grep matches full regular expresions.\n";
|
||||
#else
|
||||
"This version of grep matches strings (not regular expresions).\n";
|
||||
#endif
|
||||
|
||||
static int match = FALSE, beQuiet = FALSE;
|
||||
|
||||
static void do_grep(FILE *fp, char* needle, char *fileName, int tellName, int ignoreCase, int tellLine)
|
||||
{
|
||||
@ -65,7 +75,10 @@ static void do_grep(FILE *fp, char* needle, char *fileName, int tellName, int ig
|
||||
if (tellLine==TRUE)
|
||||
printf ("%ld:", line);
|
||||
|
||||
fputs (haystack, stdout);
|
||||
if (beQuiet==FALSE)
|
||||
fputs (haystack, stdout);
|
||||
|
||||
match = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -109,6 +122,10 @@ extern int grep_main (int argc, char **argv)
|
||||
tellLine = TRUE;
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
beQuiet = TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage(grep_usage);
|
||||
}
|
||||
@ -136,7 +153,7 @@ extern int grep_main (int argc, char **argv)
|
||||
fclose (fp);
|
||||
}
|
||||
}
|
||||
exit( TRUE);
|
||||
exit(match);
|
||||
}
|
||||
|
||||
|
||||
|
23
grep.c
23
grep.c
@ -21,6 +21,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
18-Dec-1999 Konstantin Boldyshev <konst@voshod.com>
|
||||
|
||||
+ -q option (be quiet)
|
||||
+ exit code depending on grep result (TRUE or FALSE)
|
||||
(useful for scripts)
|
||||
*/
|
||||
|
||||
#include "internal.h"
|
||||
#include "regexp.h"
|
||||
#include <stdio.h>
|
||||
@ -37,13 +45,15 @@ static const char grep_usage[] =
|
||||
"OPTIONS:\n"
|
||||
"\t-h\tsuppress the prefixing filename on output\n"
|
||||
"\t-i\tignore case distinctions\n"
|
||||
"\t-n\tprint line number with output lines\n\n"
|
||||
"\t-n\tprint line number with output lines\n"
|
||||
"\t-q\tbe quiet\n\n"
|
||||
#if defined BB_REGEXP
|
||||
"This version of grep matches full regular expresions.\n";
|
||||
#else
|
||||
"This version of grep matches strings (not regular expresions).\n";
|
||||
#endif
|
||||
|
||||
static int match = FALSE, beQuiet = FALSE;
|
||||
|
||||
static void do_grep(FILE *fp, char* needle, char *fileName, int tellName, int ignoreCase, int tellLine)
|
||||
{
|
||||
@ -65,7 +75,10 @@ static void do_grep(FILE *fp, char* needle, char *fileName, int tellName, int ig
|
||||
if (tellLine==TRUE)
|
||||
printf ("%ld:", line);
|
||||
|
||||
fputs (haystack, stdout);
|
||||
if (beQuiet==FALSE)
|
||||
fputs (haystack, stdout);
|
||||
|
||||
match = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -109,6 +122,10 @@ extern int grep_main (int argc, char **argv)
|
||||
tellLine = TRUE;
|
||||
break;
|
||||
|
||||
case 'q':
|
||||
beQuiet = TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage(grep_usage);
|
||||
}
|
||||
@ -136,7 +153,7 @@ extern int grep_main (int argc, char **argv)
|
||||
fclose (fp);
|
||||
}
|
||||
}
|
||||
exit( TRUE);
|
||||
exit(match);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user