From: Joel Rosdahl Date: Sun, 23 Feb 2020 18:00:59 +0000 (+0100) Subject: Make Util::is_absolute_path work with MSYS/Cygwin/POSIX win32 paths X-Git-Tag: v4.0~597 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa8d9fb681a488a9c2242caa2ecc6b7fd11f56a7;p=thirdparty%2Fccache.git Make Util::is_absolute_path work with MSYS/Cygwin/POSIX win32 paths --- diff --git a/src/Util.cpp b/src/Util.cpp index 35d8635ae..246dcf67d 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -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 diff --git a/unittest/test_Util.cpp b/unittest/test_Util.cpp index 7f6bb79b0..03d5e6e76 100644 --- a/unittest/test_Util.cpp +++ b/unittest/test_Util.cpp @@ -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")