Applied patch from Matt Kraai which does the following:
- adds case-insensitive matching in sed s/// epxressions - consolodates common regcomp code in grep & sed into bb_regcomp and put in utility.c - cleans up a bunch of cruft
This commit is contained in:
15
grep.c
15
grep.c
@ -104,7 +104,6 @@ extern int grep_main(int argc, char **argv)
|
||||
{
|
||||
int opt;
|
||||
int reflags;
|
||||
int ret;
|
||||
|
||||
/* do special-case option parsing */
|
||||
if (argv[1] && (strcmp(argv[1], "--help") == 0))
|
||||
@ -147,20 +146,8 @@ extern int grep_main(int argc, char **argv)
|
||||
reflags = REG_NOSUB | REG_NEWLINE;
|
||||
if (ignore_case)
|
||||
reflags |= REG_ICASE;
|
||||
if ((ret = regcomp(®ex, argv[optind], reflags)) != 0) {
|
||||
int errmsgsz = regerror(ret, ®ex, NULL, 0);
|
||||
char *errmsg = malloc(errmsgsz);
|
||||
if (errmsg == NULL) {
|
||||
fprintf(stderr, "grep: memory error\n");
|
||||
regfree(®ex);
|
||||
exit(1);
|
||||
}
|
||||
regerror(ret, ®ex, errmsg, errmsgsz);
|
||||
fprintf(stderr, "grep: %s\n", errmsg);
|
||||
free(errmsg);
|
||||
regfree(®ex);
|
||||
if (bb_regcomp(®ex, argv[optind], reflags) != 0)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* argv[(optind+1)..(argc-1)] should be names of file to grep through. If
|
||||
* there is more than one file to grep, we will print the filenames */
|
||||
|
Reference in New Issue
Block a user