From 44735f874437ee4b570a6780c1f879de80e80fdc Mon Sep 17 00:00:00 2001 From: Mark Whitley Date: Mon, 10 Jul 2000 15:50:26 +0000 Subject: [PATCH] Applied patch from Matt Kraai as per his email: However, the case of grep foo$ file didn't work, due to a problem with the flags used in regular expression compilation. The attached patch fixes this problem. ---patch------- Index: grep.c =================================================================== RCS file: /var/cvs/busybox/grep.c,v retrieving revision 1.30 diff -u -r1.30 grep.c --- grep.c 2000/07/04 22:17:01 1.30 +++ grep.c 2000/07/10 08:57:04 @@ -141,8 +141,10 @@ if (argv[optind] == NULL) usage(grep_usage); - /* compile the regular expression */ - reflags = REG_NOSUB; /* we're not going to mess with sub-expressions */ + /* compile the regular expression + * we're not going to mess with sub-expressions, and we need to + * treat newlines right. */ + reflags = REG_NOSUB | REG_NEWLINE; if (ignore_case) reflags |= REG_ICASE; if ((ret = regcomp(®ex, argv[optind], reflags)) != 0) { ---patch------- Thanks, Matt, it works great. --- findutils/grep.c | 6 ++++-- grep.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/findutils/grep.c b/findutils/grep.c index 05bf8b8cf..8d2c915be 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -141,8 +141,10 @@ extern int grep_main(int argc, char **argv) if (argv[optind] == NULL) usage(grep_usage); - /* compile the regular expression */ - reflags = REG_NOSUB; /* we're not going to mess with sub-expressions */ + /* compile the regular expression + * we're not going to mess with sub-expressions, and we need to + * treat newlines right. */ + reflags = REG_NOSUB | REG_NEWLINE; if (ignore_case) reflags |= REG_ICASE; if ((ret = regcomp(®ex, argv[optind], reflags)) != 0) { diff --git a/grep.c b/grep.c index 05bf8b8cf..8d2c915be 100644 --- a/grep.c +++ b/grep.c @@ -141,8 +141,10 @@ extern int grep_main(int argc, char **argv) if (argv[optind] == NULL) usage(grep_usage); - /* compile the regular expression */ - reflags = REG_NOSUB; /* we're not going to mess with sub-expressions */ + /* compile the regular expression + * we're not going to mess with sub-expressions, and we need to + * treat newlines right. */ + reflags = REG_NOSUB | REG_NEWLINE; if (ignore_case) reflags |= REG_ICASE; if ((ret = regcomp(®ex, argv[optind], reflags)) != 0) {