Storage, common_rename: check that old path is exists (#2698)
* Storage, common_rename: check that old path is exists * Storage, common_rename: return correct status
This commit is contained in:
		
							parent
							
								
									3217f286f0
								
							
						
					
					
						commit
						88f0b63577
					
				| @ -424,19 +424,25 @@ FS_Error storage_common_remove(Storage* storage, const char* path) { | ||||
| FS_Error storage_common_rename(Storage* storage, const char* old_path, const char* new_path) { | ||||
|     FS_Error error; | ||||
| 
 | ||||
|     if(storage_file_exists(storage, new_path)) { | ||||
|         error = storage_common_remove(storage, new_path); | ||||
|         if(error != FSE_OK) { | ||||
|             return error; | ||||
|     do { | ||||
|         if(!storage_common_exists(storage, old_path)) { | ||||
|             error = FSE_INVALID_NAME; | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         if(storage_file_exists(storage, new_path)) { | ||||
|             storage_common_remove(storage, new_path); | ||||
|         } | ||||
| 
 | ||||
|         error = storage_common_copy(storage, old_path, new_path); | ||||
|     if(error == FSE_OK) { | ||||
|         if(error != FSE_OK) { | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         if(!storage_simply_remove_recursive(storage, old_path)) { | ||||
|             error = FSE_INTERNAL; | ||||
|         } | ||||
|     } | ||||
|     } while(false); | ||||
| 
 | ||||
|     return error; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sergey Gavrilov
						Sergey Gavrilov