aboutsummaryrefslogtreecommitdiff
path: root/coreutils/dirname.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/dirname.c')
-rw-r--r--coreutils/dirname.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/coreutils/dirname.c b/coreutils/dirname.c
index 935a8313c..b534e6950 100644
--- a/coreutils/dirname.c
+++ b/coreutils/dirname.c
@@ -30,21 +30,11 @@
30 30
31extern int dirname_main(int argc, char **argv) 31extern int dirname_main(int argc, char **argv)
32{ 32{
33 char* s;
34
35 if ((argc < 2) || (**(argv + 1) == '-')) 33 if ((argc < 2) || (**(argv + 1) == '-'))
36 show_usage(); 34 show_usage();
37 argv++; 35 argv++;
38 36
39 s=*argv+strlen(*argv)-1; 37 puts (dirname (argv[0]));
40 while (s > *argv && *s == '/') { 38
41 *s-- = '\0';
42 }
43 s = strrchr(*argv, '/');
44 if (s != NULL && s == *argv)
45 s[1] = '\0';
46 else if (s != NULL)
47 *s = '\0';
48 puts(s ? *argv : ".");
49 return EXIT_SUCCESS; 39 return EXIT_SUCCESS;
50} 40}