From 567cdd1d517103e74153d0c45713f72457a702ab Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Fri, 13 Oct 2000 18:55:06 +0000 Subject: [PATCH] Fix handling of ^$ by removing the newline from input lines and by not compiling with REG_NEWLINE. --- 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 003dae9..c0193bc 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -56,7 +56,7 @@ static void print_matched_line(char *line, int linenum) if (print_line_num) printf("%i:", linenum); - printf("%s", line); + puts(line); } static void grep_file(FILE *file) @@ -67,6 +67,8 @@ static void grep_file(FILE *file) int nmatches = 0; while ((line = get_line_from_file(file)) != NULL) { + if (line[strlen(line)-1] == '\n') + line[strlen(line)-1] = '\0'; linenum++; ret = regexec(®ex, line, 0, NULL, 0); if (ret == 0 && !invert_search) { /* match */ @@ -144,7 +146,7 @@ extern int grep_main(int argc, char **argv) /* 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; + reflags = REG_NOSUB; if (ignore_case) reflags |= REG_ICASE; xregcomp(®ex, argv[optind], reflags); diff --git a/grep.c b/grep.c index 003dae9..c0193bc 100644 --- a/grep.c +++ b/grep.c @@ -56,7 +56,7 @@ static void print_matched_line(char *line, int linenum) if (print_line_num) printf("%i:", linenum); - printf("%s", line); + puts(line); } static void grep_file(FILE *file) @@ -67,6 +67,8 @@ static void grep_file(FILE *file) int nmatches = 0; while ((line = get_line_from_file(file)) != NULL) { + if (line[strlen(line)-1] == '\n') + line[strlen(line)-1] = '\0'; linenum++; ret = regexec(®ex, line, 0, NULL, 0); if (ret == 0 && !invert_search) { /* match */ @@ -144,7 +146,7 @@ extern int grep_main(int argc, char **argv) /* 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; + reflags = REG_NOSUB; if (ignore_case) reflags |= REG_ICASE; xregcomp(®ex, argv[optind], reflags); -- 2.7.4