aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-12-12 23:27:48 +0000
committerEric Andersen <andersen@codepoet.org>2000-12-12 23:27:48 +0000
commit483262f633837f98c02261fb035dd25845cbe893 (patch)
tree261f7093500d43f6fac2192b1193900949b5f6a1
parent4d4b3b1d88296efab67e789a676feb61b7929412 (diff)
downloadbusybox-w32-483262f633837f98c02261fb035dd25845cbe893.tar.gz
busybox-w32-483262f633837f98c02261fb035dd25845cbe893.tar.bz2
busybox-w32-483262f633837f98c02261fb035dd25845cbe893.zip
Patch from Matt Kraai to fix 'dirname /'
-rw-r--r--coreutils/dirname.c11
-rw-r--r--dirname.c11
2 files changed, 12 insertions, 10 deletions
diff --git a/coreutils/dirname.c b/coreutils/dirname.c
index ceb750cb8..63c557a29 100644
--- a/coreutils/dirname.c
+++ b/coreutils/dirname.c
@@ -32,13 +32,14 @@ extern int dirname_main(int argc, char **argv)
32 argv++; 32 argv++;
33 33
34 s=*argv+strlen(*argv)-1; 34 s=*argv+strlen(*argv)-1;
35 while (s && *s == '/') { 35 while (s != *argv && *s == '/') {
36 *s = '\0'; 36 *s-- = '\0';
37 s=*argv+strlen(*argv)-1;
38 } 37 }
39 s = strrchr(*argv, '/'); 38 s = strrchr(*argv, '/');
40 if (s && *s) 39 if (s != NULL && s == *argv)
40 s[1] = '\0';
41 else if (s != NULL)
41 *s = '\0'; 42 *s = '\0';
42 printf("%s\n", (s)? *argv : "."); 43 puts(s ? *argv : ".");
43 return EXIT_SUCCESS; 44 return EXIT_SUCCESS;
44} 45}
diff --git a/dirname.c b/dirname.c
index ceb750cb8..63c557a29 100644
--- a/dirname.c
+++ b/dirname.c
@@ -32,13 +32,14 @@ extern int dirname_main(int argc, char **argv)
32 argv++; 32 argv++;
33 33
34 s=*argv+strlen(*argv)-1; 34 s=*argv+strlen(*argv)-1;
35 while (s && *s == '/') { 35 while (s != *argv && *s == '/') {
36 *s = '\0'; 36 *s-- = '\0';
37 s=*argv+strlen(*argv)-1;
38 } 37 }
39 s = strrchr(*argv, '/'); 38 s = strrchr(*argv, '/');
40 if (s && *s) 39 if (s != NULL && s == *argv)
40 s[1] = '\0';
41 else if (s != NULL)
41 *s = '\0'; 42 *s = '\0';
42 printf("%s\n", (s)? *argv : "."); 43 puts(s ? *argv : ".");
43 return EXIT_SUCCESS; 44 return EXIT_SUCCESS;
44} 45}