summaryrefslogtreecommitdiffstats
path: root/misc-utils/whereis.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc-utils/whereis.c')
-rw-r--r--misc-utils/whereis.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/misc-utils/whereis.c b/misc-utils/whereis.c
index 90f7b906c..03ea95e43 100644
--- a/misc-utils/whereis.c
+++ b/misc-utils/whereis.c
@@ -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();