updated build system
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				BlockStorage/repertory/pipeline/head There was a failure building this commit
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	BlockStorage/repertory/pipeline/head There was a failure building this commit
				
			This commit is contained in:
		
							
								
								
									
										162
									
								
								support/3rd_party/src/utils/path.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										162
									
								
								support/3rd_party/src/utils/path.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -19,158 +19,20 @@ | ||||
|   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
|   SOFTWARE. | ||||
| */ | ||||
| #include "gtest/gtest.h" | ||||
|  | ||||
| #include "utils/path.hpp" | ||||
|  | ||||
| namespace repertory { | ||||
| TEST(path_utils, combine) { | ||||
|   auto s = utils::path::combine(R"(\test\path)", {}); | ||||
|  | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\test\path)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/test/path", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::combine(R"(\test)", {R"(\path)"}); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\test\path)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/test/path", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::combine(R"(\test)", {R"(\path)", R"(\again\)"}); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\test\path\again)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/test/path/again", s.c_str()); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| TEST(path_utils, create_api_path) { | ||||
|   auto s = utils::path::create_api_path(""); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path(R"(\)"); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("/"); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("."); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path(R"(\\)"); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("//"); | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("/cow///moose/////dog/chicken"); | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("\\cow\\\\\\moose\\\\\\\\dog\\chicken/"); | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
|  | ||||
|   s = utils::path::create_api_path("/cow\\\\/moose\\\\/\\dog\\chicken\\"); | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
| } | ||||
|  | ||||
| TEST(path_utils, finalize) { | ||||
|   auto s = utils::path::finalize(""); | ||||
|   EXPECT_STREQ("", s.c_str()); | ||||
|  | ||||
|   s = utils::path::finalize(R"(\)"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize("/"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize(R"(\\)"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize("//"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize("/cow///moose/////dog/chicken"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize("\\cow\\\\\\moose\\\\\\\\dog\\chicken/"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
| #endif | ||||
|  | ||||
|   s = utils::path::finalize("/cow\\\\/moose\\\\/\\dog\\chicken\\"); | ||||
| #if defined(_WIN32) | ||||
|   EXPECT_STREQ(R"(\cow\moose\dog\chicken)", s.c_str()); | ||||
| #else | ||||
|   EXPECT_STREQ("/cow/moose/dog/chicken", s.c_str()); | ||||
| #endif | ||||
| } | ||||
| } // namespace repertory | ||||
| Copyright<2018 - 2024><scott.e.graves @protonmail.com> | ||||
|  | ||||
|     Permission is hereby granted, free of charge, | ||||
|     to any person obtaining a copy of this software and associated documentation | ||||
|     files(the "Software"), | ||||
|     to deal in the Software without restriction, | ||||
|     including without limitation the rights to use, copy, modify, merge, publish | ||||
|     , | ||||
|     distribute, sublicense, and / or sell copies of the Software, | ||||
|     and to permit persons to whom the Software is furnished to do so, | ||||
|     subject to the following conditions : | ||||
|  | ||||
|     The above copyright notice and this permission notice shall be included in | ||||
|     all copies | ||||
|     or | ||||
|     substantial portions of the Software. | ||||
|  | ||||
|     THE SOFTWARE IS PROVIDED "AS IS", | ||||
|     WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | ||||
|     INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE | ||||
|     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||||
|     DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
|     TORT OR OTHERWISE, ARISING FROM, | ||||
|     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|         THE SOFTWARE.* / | ||||
| #include "utils/path.hpp" | ||||
|  | ||||
| #include "utils/common.hpp" | ||||
| #include "utils/string.hpp" | ||||
| #include "utils/unix.hpp" | ||||
|  | ||||
|         namespace { | ||||
|   static const std::string directory_seperator_str{ | ||||
|       repertory::utils::path::directory_seperator, | ||||
|   }; | ||||
| namespace { | ||||
| static const std::string directory_seperator_str{ | ||||
|     repertory::utils::path::directory_seperator, | ||||
| }; | ||||
|  | ||||
|   static const std::wstring directory_seperator_str_w{ | ||||
|       repertory::utils::path::directory_seperator_w, | ||||
|   }; | ||||
| static const std::wstring directory_seperator_str_w{ | ||||
|     repertory::utils::path::directory_seperator_w, | ||||
| }; | ||||
| } // namespace | ||||
|  | ||||
| namespace repertory::utils::path { | ||||
| @@ -253,13 +115,7 @@ auto is_trash_directory(std::string_view path) -> bool { | ||||
| } | ||||
|  | ||||
| auto is_trash_directory(std::wstring_view path) -> bool { | ||||
|   auto trash_path = utils::string::to_lower(absolute(path)); | ||||
|   return utils::string::begins_with(trash_path, | ||||
|                                     directory_seperator_str_w + L".trash-") || | ||||
|          utils::string::begins_with(trash_path, | ||||
|                                     directory_seperator_str_w + L".trashes") || | ||||
|          utils::string::begins_with(trash_path, directory_seperator_str_w + | ||||
|                                                     L"$recycle.bin"); | ||||
|   return is_trash_directory(utils::string::to_utf8(path)); | ||||
| } | ||||
|  | ||||
| auto make_file_uri(std::string_view path) -> std::string { | ||||
| @@ -359,7 +215,7 @@ auto unmake_file_uri(std::string_view uri) -> std::string { | ||||
|                            escape_characters.at(idx)); | ||||
|   } | ||||
|  | ||||
|   return absolute(uri); | ||||
|   return absolute(ret_uri); | ||||
| } | ||||
|  | ||||
| auto unmake_file_uri(std::wstring_view uri) -> std::wstring { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user