From 91747d72dca21fb92490738d90adc4a27989df04 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 23 Dec 2009 09:08:52 +0000 Subject: (svn r18611) -Fix (r18608): uppercase-to-lowercase conversion when opening a file wasn't applied when finding the full path of a file --- src/fileio.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fileio.cpp b/src/fileio.cpp index c6074de20..471b9dde5 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -272,6 +272,13 @@ char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char 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 @@ void DeterminePaths(const char *exe) 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); -- cgit v1.2.3-70-g09d2