Fix behavior of grep -lc to match GNU grep. SuS2 is ambiguous
on the correct behavior, so acting like GNU grep seems best
-Erik
diff --git a/findutils/grep.c b/findutils/grep.c
index 03cc9f8..3254868 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -179,7 +179,10 @@
if (print_match_counts) {
if (print_filename)
printf("%s:", cur_file);
- printf("%d\n", nmatches);
+ if (print_files_with_matches && nmatches > 0)
+ printf("1\n");
+ else
+ printf("%d\n", nmatches);
}
/* grep -l: print just the filename, but only if we grepped the line in the file */
diff --git a/grep.c b/grep.c
index 03cc9f8..3254868 100644
--- a/grep.c
+++ b/grep.c
@@ -179,7 +179,10 @@
if (print_match_counts) {
if (print_filename)
printf("%s:", cur_file);
- printf("%d\n", nmatches);
+ if (print_files_with_matches && nmatches > 0)
+ printf("1\n");
+ else
+ printf("%d\n", nmatches);
}
/* grep -l: print just the filename, but only if we grepped the line in the file */