summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlaven Rezic <slaven@rezic.de>2002-10-14 11:37:18 +0200
committerhv <hv@crypt.org>2002-10-20 13:43:56 +0000
commit6143965086c75022cc1d4d1f3746302780985947 (patch)
treef9a4b4f0d94b5aafb597c56ec0555a888c3ad7fc
parentdf68b396123fb8eeaeb7770f8e4d190067a4d6e2 (diff)
downloadperl-6143965086c75022cc1d4d1f3746302780985947.tar.gz
Re: [perl #17892] Perl's mkdir() doesn't remove trailing slashes
Message-ID: <8765w5wjwx.fsf@vran.herceg.de> p4raw-id: //depot/perl@18036
-rw-r--r--pp_sys.c2
-rwxr-xr-xt/op/mkdir.t7
2 files changed, 7 insertions, 2 deletions
diff --git a/pp_sys.c b/pp_sys.c
index 0245a35487..8e03168e31 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -3711,7 +3711,7 @@ PP(pp_mkdir)
* -d, chdir(), chmod(), chown(), chroot(), fcntl()?,
* (mkdir()), opendir(), rename(), rmdir(), stat(). --jhi */
if (len > 1 && tmps[len-1] == '/') {
- while (tmps[len] == '/' && len > 1)
+ while (tmps[len-1] == '/' && len > 1)
len--;
tmps = savepvn(tmps, len);
copy = TRUE;
diff --git a/t/op/mkdir.t b/t/op/mkdir.t
index 37da9c34b3..b9c4df785a 100755
--- a/t/op/mkdir.t
+++ b/t/op/mkdir.t
@@ -1,6 +1,6 @@
#!./perl
-print "1..9\n";
+print "1..13\n";
BEGIN {
chdir 't' if -d 't';
@@ -23,3 +23,8 @@ print (rmdir('blurfl') ? "not ok 6\n" : "ok 6\n");
print ($! =~ /cannot find|such|exist|not found|not a directory/i ? "ok 7\n" : "# $!\nnot ok 7\n");
print (mkdir('blurfl') ? "ok 8\n" : "not ok 8\n");
print (rmdir('blurfl') ? "ok 9\n" : "not ok 9\n");
+# trailing slashes will be removed before the system call to mkdir
+print (mkdir('blurfl///') ? "ok 10\n" : "not ok 10\n");
+print (-d 'blurfl' ? "ok 11\n" : "not ok 11\n");
+print (rmdir('blurfl///') ? "ok 12\n" : "not ok 12\n");
+print (!-d 'blurfl' ? "ok 13\n" : "not ok 13\n");