Bug fix. grep wasn't printing file names they way it was supposed to.
authorErik Andersen <andersen@codepoet.org>
Wed, 19 Jan 2000 04:30:37 +0000 (04:30 -0000)
committerErik Andersen <andersen@codepoet.org>
Wed, 19 Jan 2000 04:30:37 +0000 (04:30 -0000)
 -Erik

Changelog
findutils/grep.c
grep.c

index 453a69b0010c903051a42e38f8bd3477a45f594a..96012ff042a79d774578344e2ed18af107cd8aa8 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,5 +1,7 @@
 0.42
        * Made tar creation support in busybox tar optional.
+       * Made grep and grep -h do the right thing wrt printing
+           the file name (it failed to print files names in many cases).
 
        -Erik Andersen
 
index fdfc959af23e35caca6ff39d0d2532c58f7faedc..287d9f80dff05721d8599062f58b09c840721e59 100644 (file)
@@ -90,8 +90,8 @@ extern int grep_main (int argc, char **argv)
     char *cp;
     char *needle;
     char *fileName;
-    int tellName=FALSE;
-    int ignoreCase=FALSE;
+    int tellName=TRUE;
+    int ignoreCase=TRUE;
     int tellLine=FALSE;
 
 
@@ -115,7 +115,7 @@ extern int grep_main (int argc, char **argv)
                break;
 
            case 'h':
-               tellName = TRUE;
+               tellName = FALSE;
                break;
 
            case 'n':
@@ -137,6 +137,9 @@ extern int grep_main (int argc, char **argv)
     if (argc==0) {
        do_grep( stdin, needle, "stdin", FALSE, ignoreCase, tellLine);
     } else {
+       /* Never print the filename for just one file */ 
+       if (argc==1)
+           tellName=FALSE;
        while (argc-- > 0) {
            fileName = *argv++;
 
diff --git a/grep.c b/grep.c
index fdfc959af23e35caca6ff39d0d2532c58f7faedc..287d9f80dff05721d8599062f58b09c840721e59 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -90,8 +90,8 @@ extern int grep_main (int argc, char **argv)
     char *cp;
     char *needle;
     char *fileName;
-    int tellName=FALSE;
-    int ignoreCase=FALSE;
+    int tellName=TRUE;
+    int ignoreCase=TRUE;
     int tellLine=FALSE;
 
 
@@ -115,7 +115,7 @@ extern int grep_main (int argc, char **argv)
                break;
 
            case 'h':
-               tellName = TRUE;
+               tellName = FALSE;
                break;
 
            case 'n':
@@ -137,6 +137,9 @@ extern int grep_main (int argc, char **argv)
     if (argc==0) {
        do_grep( stdin, needle, "stdin", FALSE, ignoreCase, tellLine);
     } else {
+       /* Never print the filename for just one file */ 
+       if (argc==1)
+           tellName=FALSE;
        while (argc-- > 0) {
            fileName = *argv++;