mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	file_util: Add platform-specific slash option to SanitizePath
This commit is contained in:
		
							parent
							
								
									3bf488ce52
								
							
						
					
					
						commit
						3f82dad1e4
					
				| @ -884,11 +884,21 @@ std::string_view RemoveTrailingSlash(std::string_view path) { | |||||||
|     return path; |     return path; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::string SanitizePath(std::string_view path_) { | std::string SanitizePath(std::string_view path_, bool with_platform_slashes) { | ||||||
|     std::string path(path_); |     std::string path(path_); | ||||||
|     std::replace(path.begin(), path.end(), '\\', '/'); |     char type1 = '\\'; | ||||||
|  |     char type2 = '/'; | ||||||
|  | 
 | ||||||
|  |     if (with_platform_slashes) { | ||||||
|  | #ifdef _WIN32 | ||||||
|  |         type1 = '/'; | ||||||
|  |         type2 = '\\'; | ||||||
|  | #endif | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     std::replace(path.begin(), path.end(), type1, type2); | ||||||
|     path.erase(std::unique(path.begin(), path.end(), |     path.erase(std::unique(path.begin(), path.end(), | ||||||
|                            [](char c1, char c2) { return c1 == '/' && c2 == '/'; }), |                            [type2](char c1, char c2) { return c1 == type2 && c2 == type2; }), | ||||||
|                path.end()); |                path.end()); | ||||||
|     return std::string(RemoveTrailingSlash(path)); |     return std::string(RemoveTrailingSlash(path)); | ||||||
| } | } | ||||||
|  | |||||||
| @ -182,8 +182,9 @@ std::vector<T> SliceVector(const std::vector<T>& vector, size_t first, size_t la | |||||||
|     return std::vector<T>(vector.begin() + first, vector.begin() + first + last); |     return std::vector<T>(vector.begin() + first, vector.begin() + first + last); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'.
 | // Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\'
 | ||||||
| std::string SanitizePath(std::string_view path); | // if windows and with_platform_slashes is true.
 | ||||||
|  | std::string SanitizePath(std::string_view path, bool with_platform_slashes = false); | ||||||
| 
 | 
 | ||||||
| // simple wrapper for cstdlib file functions to
 | // simple wrapper for cstdlib file functions to
 | ||||||
| // hopefully will make error checking easier
 | // hopefully will make error checking easier
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Zach Hilman
						Zach Hilman