static char *sccsid
= "@(#)whereis.c 4.11 (Berkeley) %G%";
static char *bindirs
[] = {
static char *mandirs
[] = {
static char *srcdirs
[] = {
"/usr/src/lib/libc/stdio",
"/usr/src/lib/libc/net/common",
"/usr/src/lib/libc/net/inet",
"/usr/src/lib/libc/net/misc",
"/usr/src/ucb/pascal/utilities",
* look for source, documentation and binaries
fprintf(stderr
, "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n");
register char *cp
= argv
[0] + 1;
while (*cp
) switch (*cp
++) {
getlist(&argc
, &argv
, &Sflag
, &Scnt
);
getlist(&argc
, &argv
, &Bflag
, &Bcnt
);
getlist(&argc
, &argv
, &Mflag
, &Mcnt
);
getlist(argcp
, argvp
, flagp
, cntp
)
for ((*argcp
)--; *argcp
> 0 && (*argvp
)[0][0] != '-'; (*argcp
)--)
if (sflag
&& bflag
&& mflag
)
sflag
= bflag
= mflag
= 0;
if (uflag
&& print
== 0 && count
!= 1) {
if (uflag
&& print
== 0 && count
!= 1) {
if (uflag
&& print
== 0 && count
!= 1) {
findin(*dirv
++, cp
), dirc
--;
while ((dp
= readdir(dirp
)) != NULL
) {
if (itsit(cp
, dp
->d_name
)) {
printf(" %s/%s", dir
, dp
->d_name
);
register int i
= strlen(dp
);
if (dp
[0] == 's' && dp
[1] == '.' && itsit(cp
, dp
+2))
while (*cp
&& *dp
&& *cp
== *dp
)
if (*cp
== 0 && *dp
== 0)
if (*cp
== 0 && *dp
++ == '.') {
return (*dp
++ == 'C' && *dp
++ == 0);