aboutsummaryrefslogtreecommitdiff
path: root/toys/basename.c
diff options
context:
space:
mode:
Diffstat (limited to 'toys/basename.c')
-rw-r--r--toys/basename.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/toys/basename.c b/toys/basename.c
new file mode 100644
index 00000000..2ea6882c
--- /dev/null
+++ b/toys/basename.c
@@ -0,0 +1,15 @@
+#include "toys.h"
+
+int basename_main(void)
+{
+ char *name = basename(toys.optargs[0]);
+ if (toys.optargs[1]) {
+ int slen = strlen(toys.optargs[1]);
+ int name_len = strlen(name);
+ if (slen < name_len)
+ if (!strcmp(name+name_len-slen, toys.optargs[1]))
+ *(name+name_len-slen) = '\0';
+ }
+ puts(name);
+ return 0;
+}