mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Replaced boost::filesystem::canonical() with boost::filesystem::absolute(),
as canonical() is broken on Windows (reparse points aka symbolic links are not processed correctly). Fixes https://github.com/prusa3d/PrusaSlicer/issues/732 https://github.com/prusa3d/PrusaSlicer/issues/3956 https://github.com/prusa3d/PrusaSlicer/issues/4557
This commit is contained in:
		
							parent
							
								
									5f27b0f851
								
							
						
					
					
						commit
						683af51685
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		|  | @ -634,7 +634,9 @@ void PresetCollection::add_default_preset(const std::vector<std::string> &keys, | |||
| // Throws an exception on error.
 | ||||
| void PresetCollection::load_presets(const std::string &dir_path, const std::string &subdir) | ||||
| { | ||||
|     boost::filesystem::path dir = boost::filesystem::canonical(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||
|     // Don't use boost::filesystem::canonical() on Windows, it is broken in regard to reparse points, 
 | ||||
|     // see https://github.com/prusa3d/PrusaSlicer/issues/732
 | ||||
|     boost::filesystem::path dir = boost::filesystem::absolute(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||
|     m_dir_path = dir.string(); | ||||
|     std::string errors_cummulative; | ||||
|     // Store the loaded presets into a new vector, otherwise the binary search for already existing presets would be broken.
 | ||||
|  | @ -1518,7 +1520,9 @@ PhysicalPrinterCollection::PhysicalPrinterCollection( const std::vector<std::str | |||
| // Throws an exception on error.
 | ||||
| void PhysicalPrinterCollection::load_printers(const std::string& dir_path, const std::string& subdir) | ||||
| { | ||||
|     boost::filesystem::path dir = boost::filesystem::canonical(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||
|     // Don't use boost::filesystem::canonical() on Windows, it is broken in regard to reparse points, 
 | ||||
|     // see https://github.com/prusa3d/PrusaSlicer/issues/732
 | ||||
|     boost::filesystem::path dir = boost::filesystem::absolute(boost::filesystem::path(dir_path) / subdir).make_preferred(); | ||||
|     m_dir_path = dir.string(); | ||||
|     std::string errors_cummulative; | ||||
|     // Store the loaded printers into a new vector, otherwise the binary search for already existing presets would be broken.
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vojtech Bubnik
						Vojtech Bubnik