whereis: do not strip suffixes

The whereis implementations of FreeBSD, macOS, NetBSD, and OpenBSD do
not strip suffixes. Although whereis is not a POSIX tool and has no
shared standard, even its manual page indicates that the supplied names
are command names.

Commands do not have a suffix on Linux systems.

Stripping suffixes actually leads to issues with tools like fsck.ext4,
since fsck.ext4 is not the same tool as fsck and definitely not the same
tool as fsck.minix.

Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
This commit is contained in:
Samanta Navarro 2020-11-04 11:37:00 +00:00
parent d95ee9fd75
commit 117ddbeedc
2 changed files with 1 additions and 8 deletions

View File

@ -42,11 +42,7 @@ whereis \- locate the binary, source, and manual page files for a command
.SH DESCRIPTION
.B whereis
locates the binary, source and manual files for the specified command names.
The supplied names are first stripped of leading pathname components and any
(single) trailing extension of the form
.BI . ext
(for example:
.BR .c )
The supplied names are first stripped of leading pathname components.
Prefixes of
.B s.
resulting from use of source code control are also dealt with.

View File

@ -469,9 +469,6 @@ static void lookup(const char *pattern, struct wh_dirlist *ls, int want)
want & BIN_DIR ? "bin" : "",
want & MAN_DIR ? "man" : "",
want & SRC_DIR ? "src" : ""));
p = strrchr(patbuf, '.');
if (p)
*p = '\0';
if (!uflag)
/* if -u not specified then we always print the pattern */