projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Oops. Since dirent.h depends on BB_FEATURE_SH_TAB_COMPLETION, put it
[oweals/busybox.git]
/
dirname.c
diff --git
a/dirname.c
b/dirname.c
index ce3cd6f03d24e7cd4aeb871ec7fddcf03d5b03cf..7f191c1b9502d8694bd99bdb451720263e609dcf 100644
(file)
--- a/
dirname.c
+++ b/
dirname.c
@@
-2,7
+2,7
@@
/*
* Mini dirname implementation for busybox
*
/*
* Mini dirname implementation for busybox
*
- * Copyright (C)
2000
by Lineo, inc.
+ * Copyright (C)
1999,2000,2001
by Lineo, inc.
* Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
*
* This program is free software; you can redistribute it and/or modify
* Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
*
* This program is free software; you can redistribute it and/or modify
@@
-20,30
+20,29
@@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-#include "internal.h"
+
#include <stdio.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "busybox.h"
extern int dirname_main(int argc, char **argv)
{
char* s;
extern int dirname_main(int argc, char **argv)
{
char* s;
- if ((argc < 2) || (**(argv + 1) == '-')) {
- usage("dirname [FILENAME ...]\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
- "\nStrips non-directory suffix from FILENAME\n"
-#endif
- );
- }
+ if ((argc < 2) || (**(argv + 1) == '-'))
+ show_usage();
argv++;
s=*argv+strlen(*argv)-1;
argv++;
s=*argv+strlen(*argv)-1;
- while (s && *s == '/') {
- *s = '\0';
- s=*argv+strlen(*argv)-1;
+ while (s != *argv && *s == '/') {
+ *s-- = '\0';
}
s = strrchr(*argv, '/');
}
s = strrchr(*argv, '/');
- if (s && *s)
+ if (s != NULL && s == *argv)
+ s[1] = '\0';
+ else if (s != NULL)
*s = '\0';
*s = '\0';
- p
rintf("%s\n", (s)
? *argv : ".");
-
exit(TRUE)
;
+ p
uts(s
? *argv : ".");
+
return EXIT_SUCCESS
;
}
}