Make code compile when basename() is POSIX compliant.

If basename() uses "char *", we shouldn't do the intermediate
assignment, as that field is of type "const char *". Simply call
basename() on the command line argument directly.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D6463
This commit is contained in:
Ed Schouten 2016-05-19 20:03:01 +00:00
parent 18849b5da0
commit c76f604ee9

View File

@ -272,10 +272,10 @@ main(int argc, char **argv)
"only one of -s and -S options allowed");
if (bsdar->options & (AR_A | AR_B)) {
if ((bsdar->posarg = *argv) == NULL)
if (*argv == NULL)
bsdar_errc(bsdar, EX_USAGE, 0,
"no position operand specified");
if ((bsdar->posarg = basename(bsdar->posarg)) == NULL)
if ((bsdar->posarg = basename(*argv)) == NULL)
bsdar_errc(bsdar, EX_SOFTWARE, errno,
"basename failed");
argc--;