From 12c2fef00709aa1c54130484a85fbeb7c7cabc63 Mon Sep 17 00:00:00 2001 From: Evan Martin Date: Sun, 7 Nov 2010 14:53:19 -0800 Subject: [PATCH] handle paths with double slash --- ninja_jumble.cc | 2 ++ ninja_test.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/ninja_jumble.cc b/ninja_jumble.cc index 552c869..7be230c 100644 --- a/ninja_jumble.cc +++ b/ninja_jumble.cc @@ -49,6 +49,8 @@ string DirName(const string& path) { string::size_type slash_pos = path.rfind('/'); if (slash_pos == string::npos) return ""; // Nothing to do. + while (slash_pos > 0 && path[slash_pos - 1] == '/') + --slash_pos; return path.substr(0, slash_pos); } diff --git a/ninja_test.cc b/ninja_test.cc index d7bab66..c9cde76 100644 --- a/ninja_test.cc +++ b/ninja_test.cc @@ -506,3 +506,7 @@ TEST_F(DiskInterfaceTest, ReadFile) { EXPECT_EQ(kTestContent, disk_.ReadFile(kTestFile, &err)); EXPECT_EQ("", err); } + +TEST_F(DiskInterfaceTest, MakeDirs) { + EXPECT_TRUE(disk_.MakeDirs("path/with/double//slash/")); +} -- 2.7.4