X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=fs.c;h=87367a77c28ed8a6c61803519a1a6a46033cd2da;hb=298df8b4111fe0a4485e052b747136e909c2768e;hp=6c00d3c53b8de94173192c2db4b6aba7c885a80b;hpb=f83199a284863a11e7729a1712782f7828b62bc1;p=xonotic%2Fdarkplaces.git diff --git a/fs.c b/fs.c index 6c00d3c5..87367a77 100644 --- a/fs.c +++ b/fs.c @@ -74,7 +74,6 @@ # define dup _dup #endif -#define USE_RWOPS 1 #if USE_RWOPS # include typedef SDL_RWops *filedesc_t; @@ -2085,15 +2084,18 @@ void FS_Init (void) *fs_userdir = 0; // user wants roaming installation, no userdir else { +#ifdef DP_FS_USERDIR + strlcpy(fs_userdir, DP_FS_USERDIR, sizeof(fs_userdir)); +#else int dirmode; int highestuserdirmode = USERDIRMODE_COUNT - 1; int preferreduserdirmode = USERDIRMODE_COUNT - 1; int userdirstatus[USERDIRMODE_COUNT]; -#ifdef WIN32 +# ifdef WIN32 // historical behavior... if (!strcmp(gamedirname1, "id1")) preferreduserdirmode = USERDIRMODE_NOHOME; -#endif +# endif // check what limitations the user wants to impose if (COM_CheckParm("-home")) preferreduserdirmode = USERDIRMODE_HOME; if (COM_CheckParm("-mygames")) preferreduserdirmode = USERDIRMODE_MYGAMES; @@ -2125,6 +2127,7 @@ void FS_Init (void) // and finally, we picked one... FS_ChooseUserDir((userdirmode_t)dirmode, fs_userdir, sizeof(fs_userdir)); Con_DPrintf("userdir %i is the winner\n", dirmode); +#endif } // if userdir equal to basedir, clear it to avoid confusion later @@ -3563,7 +3566,6 @@ fssearch_t *FS_Search(const char *pattern, int caseinsensitive, int quiet) stringlist_t dirlist; const char *slash, *backslash, *colon, *separator; char *basepath; - char temp[MAX_OSPATH]; for (i = 0;pattern[i] == '.' || pattern[i] == ':' || pattern[i] == '/' || pattern[i] == '\\';i++) ; @@ -3598,6 +3600,7 @@ fssearch_t *FS_Search(const char *pattern, int caseinsensitive, int quiet) pak = searchpath->pack; for (i = 0;i < pak->numfiles;i++) { + char temp[MAX_OSPATH]; strlcpy(temp, pak->files[i].name, sizeof(temp)); while (temp[0]) { @@ -3681,6 +3684,7 @@ fssearch_t *FS_Search(const char *pattern, int caseinsensitive, int quiet) // for each entry in matchedSet try to open the subdirectories specified in subpath for( dirlistindex = 0 ; dirlistindex < matchedSet.numstrings ; dirlistindex++ ) { + char temp[MAX_OSPATH]; strlcpy( temp, matchedSet.strings[ dirlistindex ], sizeof(temp) ); strlcat( temp, subpath, sizeof(temp) ); listdirectory( &foundSet, searchpath->filename, temp ); @@ -3704,17 +3708,17 @@ fssearch_t *FS_Search(const char *pattern, int caseinsensitive, int quiet) for (dirlistindex = 0;dirlistindex < matchedSet.numstrings;dirlistindex++) { - const char *temp = matchedSet.strings[dirlistindex]; - if (matchpattern(temp, (char *)pattern, true)) + const char *matchtemp = matchedSet.strings[dirlistindex]; + if (matchpattern(matchtemp, (char *)pattern, true)) { for (resultlistindex = 0;resultlistindex < resultlist.numstrings;resultlistindex++) - if (!strcmp(resultlist.strings[resultlistindex], temp)) + if (!strcmp(resultlist.strings[resultlistindex], matchtemp)) break; if (resultlistindex == resultlist.numstrings) { - stringlistappend(&resultlist, temp); + stringlistappend(&resultlist, matchtemp); if (!quiet && developer_loading.integer) - Con_Printf("SearchDirFile: %s\n", temp); + Con_Printf("SearchDirFile: %s\n", matchtemp); } } }