diff options
author | Rob Landley <rob@landley.net> | 2013-01-04 21:10:49 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2013-01-04 21:10:49 -0600 |
commit | 90e8605ea587c4ebd00de77e3c71551b6e26b7c0 (patch) | |
tree | da824e693a9bd67c13a26456f090318e45743f30 /toys/posix/basename.c | |
parent | 662a267c9b52f256b027d0f176a846b1d973ab99 (diff) | |
download | toybox-90e8605ea587c4ebd00de77e3c71551b6e26b7c0.tar.gz |
Make basename use basename().
Diffstat (limited to 'toys/posix/basename.c')
-rw-r--r-- | toys/posix/basename.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/toys/posix/basename.c b/toys/posix/basename.c index 75f3baa4..c49a5f36 100644 --- a/toys/posix/basename.c +++ b/toys/posix/basename.c @@ -20,23 +20,12 @@ config BASENAME void basename_main(void) { - char *arg = toys.optargs[0], *suffix = toys.optargs[1], *base; - - while ((base = strrchr(arg, '/'))) { - if (base == arg) break; - if (!base[1]) *base = 0; - else { - base++; - break; - } - } - - if (!base) base = arg; + char *base = basename(*toys.optargs), *suffix = toys.optargs[1]; // chop off the suffix if provided if (suffix) { - arg = base + strlen(base) - strlen(suffix); - if (arg > base && !strcmp(arg, suffix)) *arg = 0; + char *s = base + strlen(base) - strlen(suffix); + if (s > base && !strcmp(s, suffix)) *s = 0; } puts(base); |