aboutsummaryrefslogtreecommitdiff
path: root/coreutils/basename.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/basename.c')
-rw-r--r--coreutils/basename.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/coreutils/basename.c b/coreutils/basename.c
index 1db885f62..06e27663f 100644
--- a/coreutils/basename.c
+++ b/coreutils/basename.c
@@ -2,7 +2,7 @@
2/* 2/*
3 * Mini basename implementation for busybox 3 * Mini basename implementation for busybox
4 * 4 *
5 * Copyright (C) 1999 by Lineo, inc. 5 * Copyright (C) 1999,2000 by Lineo, inc.
6 * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org> 6 * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
@@ -26,13 +26,16 @@
26 26
27extern int basename_main(int argc, char **argv) 27extern int basename_main(int argc, char **argv)
28{ 28{
29 char* s; 29 char* s, *s1;
30 30
31 if ((argc < 2) || (**(argv + 1) == '-')) { 31 if ((argc < 2) || (**(argv + 1) == '-')) {
32 usage("basename [file ...]\n"); 32 usage("basename [file ...]\n");
33 } 33 }
34 argv++; 34 argv++;
35 35
36 s1=*argv+strlen(*argv)-1;
37 if (*s1 == '/')
38 *s1 = '\0';
36 s = strrchr(*argv, '/'); 39 s = strrchr(*argv, '/');
37 printf("%s\n", (s)? s + 1 : *argv); 40 printf("%s\n", (s)? s + 1 : *argv);
38 exit(TRUE); 41 exit(TRUE);