Mercurial > hg > toybox
view toys/posix/basename.c @ 673:c102f31a753e
Missing line in patch -l. Oops.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 07 Oct 2012 23:53:25 -0500 |
parents | 2986aa63a021 |
children | 786841fdb1e0 |
line wrap: on
line source
/* vi: set sw=4 ts=4: * * basename.c - Return non-directory portion of a pathname * * Copyright 2012 Tryn Mirell <tryn@mirell.org> * * See http://opengroup.org/onlinepubs/9699919799/utilities/basename.html USE_BASENAME(NEWTOY(basename, "<1>2", TOYFLAG_USR|TOYFLAG_BIN)) config BASENAME bool "basename" default y help usage: basename string [suffix] Return non-directory portion of a pathname removing suffix */ #include "toys.h" 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; // chop off the suffix if provided if (suffix) { arg = base + strlen(base) - strlen(suffix); if (arg > base && !strcmp(arg, suffix)) *arg = 0; } puts(base); }