apply single post-1.7.4 patch; bump version to 1.7.5 1_7_stable 1_7_5
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 21 Mar 2008 08:44:32 +0000 (08:44 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 21 Mar 2008 08:44:32 +0000 (08:44 -0000)
Makefile
findutils/grep.c

index c1fe21b53762ac2472e6f859cd2b28249350959c..b1ec0d3c796999780d114e42352ffaf565ee960b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 7
-SUBLEVEL = 4
+SUBLEVEL = 5
 EXTRAVERSION =
 NAME = Unnamed
 
index c45d0ed89114e49b86561903864c44b5a235e154..521b88e7f9b13d10e958130a322fbc0d11da9b47 100644 (file)
@@ -154,14 +154,14 @@ static int grep_file(FILE *file)
 
        while ((line = xmalloc_getline(file)) != NULL) {
                llist_t *pattern_ptr = pattern_head;
-               grep_list_data_t * gl;
+               grep_list_data_t *gl = gl; /* for gcc */
 
                linenum++;
                ret = 0;
                while (pattern_ptr) {
                        gl = (grep_list_data_t *)pattern_ptr->data;
                        if (FGREP_FLAG) {
-                               ret = strstr(line, gl->pattern) != NULL;
+                               ret |= (strstr(line, gl->pattern) != NULL);
                        } else {
                                /*
                                 * test for a postitive-assertion match (regexec returns success (0)
@@ -255,8 +255,15 @@ static int grep_file(FILE *file)
                                print_n_lines_after = lines_after;
 #endif
                                if (option_mask32 & OPT_o) {
-                                       line[regmatch.rm_eo] = '\0';
-                                       print_line(line + regmatch.rm_so, linenum, ':');
+                                       if (FGREP_FLAG) {
+                                               /* -Fo just prints the pattern
+                                                * (unless -v: -Fov doesnt print anything at all) */
+                                               if (ret)
+                                                       print_line(gl->pattern, linenum, ':');
+                                       } else {
+                                               line[regmatch.rm_eo] = '\0';
+                                               print_line(line + regmatch.rm_so, linenum, ':');
+                                       }
                                } else {
                                        print_line(line, linenum, ':');
                                }