snprintf(prefpathfile, len, "%s/%s", prefpath, buf);
int rc = locateCorrectCase(prefpathfile, iswriting); /* favor prefpath. */
- if (rc == 0) // found?
+ if ( (rc == 0) || ((rc == -1) && (iswriting)) ) // found or create?
strcpy(buf, prefpathfile);
else if ((rc < 0) && (!iswriting)) /* not writing? Try game dir... */
rc = locateCorrectCase(buf, iswriting);
static char g_filename[4096];
char* ConvertFileName( const char* orgfilename, const char *mode)
{
+ if (orgfilename == g_filename) // recursion?
+ return g_filename;
+
// translate filename into proper path name
if (orgfilename[ 0] == ':')
orgfilename++;