mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	common/file_util: Allow access to files on network shares
On Windows, network shares use paths like \\server\share\file which were being broken by FileUtil::SanitizePath() removing double slashes. Changed the code in SanitizePath to permit a double-backslash if it occurs at the start of a filepath (on Windows only).
This commit is contained in:
		
							parent
							
								
									c605bb42db
								
							
						
					
					
						commit
						fb941c56d8
					
				
					 1 changed files with 8 additions and 1 deletions
				
			
		|  | @ -902,7 +902,14 @@ std::string SanitizePath(std::string_view path_, DirectorySeparator directory_se | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     std::replace(path.begin(), path.end(), type1, type2); |     std::replace(path.begin(), path.end(), type1, type2); | ||||||
|     path.erase(std::unique(path.begin(), path.end(), | 
 | ||||||
|  |     auto start = path.begin(); | ||||||
|  | #ifdef _WIN32 | ||||||
|  |     // allow network paths which start with a double backslash (e.g. \\server\share)
 | ||||||
|  |     if (start != path.end()) | ||||||
|  |         ++start; | ||||||
|  | #endif | ||||||
|  |     path.erase(std::unique(start, path.end(), | ||||||
|                            [type2](char c1, char c2) { return c1 == type2 && c2 == type2; }), |                            [type2](char c1, char c2) { return c1 == type2 && c2 == type2; }), | ||||||
|                path.end()); |                path.end()); | ||||||
|     return std::string(RemoveTrailingSlash(path)); |     return std::string(RemoveTrailingSlash(path)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue