]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
whereis: search in path for binaries only
authorKarel Zak <kzak@redhat.com>
Tue, 30 Aug 2011 09:44:15 +0000 (11:44 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 30 Aug 2011 09:44:15 +0000 (11:44 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/whereis.c

index 90f7b906cabb87755cd32702fa774c1defab3148..03ea95e439de8cb1333e389048a4fe53d2fe8972 100644 (file)
@@ -299,8 +299,6 @@ findv(char **dirv, int dirc, char *cp)
 
        while (dirc > 0)
                findin(*dirv++, cp), dirc--;
-       while (*dirp)
-               findin(*dirp++, cp);
 }
 
 static void
@@ -315,9 +313,11 @@ looksrc(char *cp)
 static void
 lookbin(char *cp)
 {
-       if (Bflag == 0)
+       if (Bflag == 0) {
                findv(bindirs, ARRAY_SIZE(bindirs)-1, cp);
-       else
+               while (*dirp)
+                       findin(*dirp++, cp);            /* look $PATH */
+        } else
                findv(Bflag, Bcnt, cp);
 }
 
@@ -424,8 +424,6 @@ main(int argc, char **argv)
        if (argc == 0)
                usage(stderr);
 
-       fillpath();
-
        do
                if (argv[0][0] == '-') {
                        register char *cp = argv[0] + 1;
@@ -475,8 +473,11 @@ main(int argc, char **argv)
                                usage(stderr);
                        }
                        argv++;
-               } else
+               } else {
+                       if (Bcnt == 0 && pathdir == NULL)
+                               fillpath();
                        lookup(*argv++);
+               }
        while (--argc > 0);
 
        freepath();