| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -1814,43 +1814,43 @@ const char *GetFileNameWithoutExt(const char *filePath) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return fileName; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get directory for a given fileName (with path) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			const char *GetDirectoryPath(const char *fileName) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get directory for a given filePath | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			const char *GetDirectoryPath(const char *filePath) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    const char *lastSlash = NULL; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static char filePath[MAX_FILEPATH_LENGTH]; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    memset(filePath, 0, MAX_FILEPATH_LENGTH); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static char dirPath[MAX_FILEPATH_LENGTH]; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    memset(dirPath, 0, MAX_FILEPATH_LENGTH); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    lastSlash = strprbrk(fileName, "\\/"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    lastSlash = strprbrk(filePath, "\\/"); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (!lastSlash) return NULL; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // NOTE: Be careful, strncpy() is not safe, it does not care about '\0' | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strncpy(filePath, fileName, strlen(fileName) - (strlen(lastSlash) - 1)); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    filePath[strlen(fileName) - strlen(lastSlash)] = '\0';  // Add '\0' manually | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    strncpy(dirPath, filePath, strlen(filePath) - (strlen(lastSlash) - 1)); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    dirPath[strlen(filePath) - strlen(lastSlash)] = '\0';  // Add '\0' manually | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return filePath; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return dirPath; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get previous directory path for a given path | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			const char *GetPrevDirectoryPath(const char *path) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			const char *GetPrevDirectoryPath(const char *dirPath) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static char prevDir[MAX_FILEPATH_LENGTH]; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    memset(prevDir, 0, MAX_FILEPATH_LENGTH); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int pathLen = strlen(path); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    for (int i = (pathLen - 1); i >= 0; i--) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    static char prevDirPath[MAX_FILEPATH_LENGTH]; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    memset(prevDirPath, 0, MAX_FILEPATH_LENGTH); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int pathLen = strlen(dirPath); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (pathLen <= 3) strcpy(prevDirPath, dirPath); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    for (int i = (pathLen - 1); (i > 0) && (pathLen > 3); i--) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        if ((path[i] == '\\') || (path[i] == '/')) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        if ((dirPath[i] == '\\') || (dirPath[i] == '/')) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if ((i != (pathLen - 1)) && (path[pathLen - 2] != ':')) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                strncpy(prevDir, path, i); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            if (i == 2) i++;    // Check for root: "C:\" | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            strncpy(prevDirPath, dirPath, i); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return prevDir; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return prevDirPath; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get current working directory | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |