changeset 14068:efd1182433ab draft

(svn r18611) -Fix (r18608): uppercase-to-lowercase conversion when opening a file wasn't applied when finding the full path of a file
author rubidium <rubidium@openttd.org>
date Wed, 23 Dec 2009 09:08:52 +0000
parents 7e63603325e2
children 7b6847586d1b
files src/fileio.cpp
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.cpp
+++ b/src/fileio.cpp
@@ -272,6 +272,13 @@
 	FOR_ALL_SEARCHPATHS(sp) {
 		FioGetFullPath(buf, buflen, sp, subdir, filename);
 		if (FileExists(buf)) break;
+#if !defined(WIN32)
+		/* Be, as opening files, aware that sometimes the filename
+		 * might be in uppercase when it is in lowercase on the
+		 * disk. Ofcourse Windows doesn't care about casing. */
+		strtolower(buf + ((subdir == NO_DIRECTORY) ? 0 : strlen(_searchpaths[sp]) - 1));
+		if (FileExists(buf)) break;
+#endif
 	}
 
 	return buf;
@@ -968,7 +975,7 @@
 	FioCreateDirectory(_searchpaths[SP_AUTODOWNLOAD_DIR]);
 
 	/* Create the directory for each of the types of content */
-	const Subdirectory dirs[] = { SCENARIO_DIR, HEIGHTMAP_DIR, DATA_DIR, AI_DIR, AI_LIBRARY_DIR };
+	const Subdirectory dirs[] = { SCENARIO_DIR, HEIGHTMAP_DIR, DATA_DIR, AI_DIR, AI_LIBRARY_DIR, GM_DIR };
 	for (uint i = 0; i < lengthof(dirs); i++) {
 		char *tmp = str_fmt("%s%s", _searchpaths[SP_AUTODOWNLOAD_DIR], _subdirs[dirs[i]]);
 		FioCreateDirectory(tmp);