]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Make Util::is_absolute_path work with MSYS/Cygwin/POSIX win32 paths
authorJoel Rosdahl <joel@rosdahl.net>
Sun, 23 Feb 2020 18:00:59 +0000 (19:00 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 23 Feb 2020 18:00:59 +0000 (19:00 +0100)
src/Util.cpp
unittest/test_Util.cpp

index 35d8635ae9cd0d27b86cf498bae104249c61db78..246dcf67dee74c5e6cd456224cfac8b37eb3f48c 100644 (file)
@@ -292,11 +292,12 @@ bool
 is_absolute_path(string_view path)
 {
 #ifdef _WIN32
-  return path.length() >= 2 && path[1] == ':'
-         && (path[2] == '/' || path[2] == '\\');
-#else
-  return !path.empty() && path[0] == '/';
+  if (path.length() >= 2 && path[1] == ':'
+      && (path[2] == '/' || path[2] == '\\')) {
+    return true;
+  }
 #endif
+  return !path.empty() && path[0] == '/';
 }
 
 int
index 7f6bb79b083c21093c93ef0971f541cd7d80ca7e..03d5e6e7611a639fbea5de27ebd2ab5dd60fd96a 100644 (file)
@@ -306,15 +306,15 @@ TEST_CASE("Util::is_absolute_path")
 #ifdef _WIN32
   CHECK(Util::is_absolute_path("C:/"));
   CHECK(Util::is_absolute_path("C:\\foo/fie"));
+  CHECK(Util::is_absolute_path("/C:\\foo/fie")); // MSYS/Cygwin path
   CHECK(!Util::is_absolute_path(""));
   CHECK(!Util::is_absolute_path("foo\\fie/fum"));
   CHECK(!Util::is_absolute_path("C:foo/fie"));
-#else
+#endif
   CHECK(Util::is_absolute_path("/"));
   CHECK(Util::is_absolute_path("/foo/fie"));
   CHECK(!Util::is_absolute_path(""));
   CHECK(!Util::is_absolute_path("foo/fie"));
-#endif
 }
 
 TEST_CASE("Util::parse_int")