From cd58c9e52387aa5bf76bac9aa7f5a3d99675130e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 15 Mar 2002 14:53:23 +0000 Subject: [PATCH] Reports trouble setting the write dir in PHYSFS_setSaneConfig(). --- physfs.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/physfs.c b/physfs.c index df1e1b7a..609b31c1 100644 --- a/physfs.c +++ b/physfs.c @@ -652,17 +652,26 @@ int PHYSFS_setSaneConfig(const char *organization, const char *appName, if (!PHYSFS_setWriteDir(str)) { + int no_write = 0; + sprintf(str, ".%s/%s", organization, appName); if ( (PHYSFS_setWriteDir(userdir)) && - (PHYSFS_mkdir(str + strlen(userdir))) ) + (PHYSFS_mkdir(str)) ) { - PHYSFS_setWriteDir(str); + sprintf(str, "%s.%s%s%s", userdir, organization, dirsep, appName); + if (!PHYSFS_setWriteDir(str)) + no_write = 1; } /* if */ else { - PHYSFS_setWriteDir(NULL); - free(str); - BAIL_IF_MACRO(1, ERR_CANT_SET_WRITE_DIR, 0); + no_write = 1; } /* else */ + + if (no_write) + { + PHYSFS_setWriteDir(NULL); /* just in case. */ + free(str); + BAIL_MACRO(ERR_CANT_SET_WRITE_DIR, 0); + } /* if */ } /* if */ /* Put write dir first in search path... */