}
// operating system specific code
-static void adddirentry( stringlist_t *list, const char *path, const char *name )
+static void adddirentry(stringlist_t *list, const char *name)
{
if (strcmp(name, ".") && strcmp(name, ".."))
{
- char fullpath[MAX_OSPATH];
- dpsnprintf (fullpath, sizeof (fullpath), "%s%s", path, name);
- stringlistappend(list, fullpath);
+ stringlistappend(list, name);
}
}
#ifdef WIN32
char pattern[4096], *c;
struct _finddata_t n_file;
long hFile;
- strlcpy (pattern, *path ? path : "./", sizeof (pattern));
+ strlcpy (pattern, path, sizeof (pattern));
strlcat (pattern, "*", sizeof (pattern));
// ask for the directory listing handle
hFile = _findfirst(pattern, &n_file);
if(hFile == -1)
return;
do {
- adddirentry(list, path, n_file.name );
+ adddirentry(list, n_file.name );
} while (_findnext(hFile, &n_file) == 0);
_findclose(hFile);
{
DIR *dir;
struct dirent *ent;
- dir = opendir( *path ? path : "./" );
+ dir = opendir(path);
if (!dir)
return;
while ((ent = readdir(dir)))
- adddirentry(list, path, ent->d_name);
+ adddirentry(list, ent->d_name);
closedir(dir);
}
#endif
int i;
stringlist_t list;
searchpath_t *search;
+ char pakfile[MAX_OSPATH];
strlcpy (fs_gamedir, dir, sizeof (fs_gamedir));
{
if (!strcasecmp(FS_FileExtension(list.strings[i]), "pak"))
{
- FS_AddPack_Fullpath(list.strings[i], NULL, false);
+ dpsnprintf (pakfile, sizeof (pakfile), "%s%s", dir, list.strings[i]);
+ FS_AddPack_Fullpath(pakfile, NULL, false);
}
}
{
if (!strcasecmp(FS_FileExtension(list.strings[i]), "pk3"))
{
- FS_AddPack_Fullpath(list.strings[i], NULL, false);
+ dpsnprintf (pakfile, sizeof (pakfile), "%s%s", dir, list.strings[i]);
+ FS_AddPack_Fullpath(pakfile, NULL, false);
}
}
}
else
{
- int searchpathlen = strlen( searchpath->filename );
// get a directory listing and look at each name
dpsnprintf(netpath, sizeof (netpath), "%s%s", searchpath->filename, basepath);
stringlistinit(&dirlist);
listdirectory(&dirlist, netpath);
for (dirlistindex = 0;dirlistindex < dirlist.numstrings;dirlistindex++)
{
- const char *direntry = dirlist.strings[dirlistindex];
- if (matchpattern(direntry + searchpathlen, (char *)pattern, true))
+ dpsnprintf(temp, sizeof(temp), "%s%s", basepath, dirlist.strings[dirlistindex]);
+ if (matchpattern(temp, (char *)pattern, true))
{
for (resultlistindex = 0;resultlistindex < resultlist.numstrings;resultlistindex++)
- if (!strcmp(resultlist.strings[resultlistindex], direntry))
+ if (!strcmp(resultlist.strings[resultlistindex], temp))
break;
if (resultlistindex == resultlist.numstrings)
{
- stringlistappend(&resultlist, direntry);
+ stringlistappend(&resultlist, temp);
if (!quiet && developer_loading.integer)
- Con_Printf("SearchDirFile: %s\n", direntry);
+ Con_Printf("SearchDirFile: %s\n", temp);
}
}
}
{
int i,j;
stringlist_t list;
- int basedirlength;
stringlistinit(&list);
if (fs_basedir[0])
- {
listdirectory(&list, fs_basedir);
- basedirlength = strlen( fs_basedir );
- }
else
- {
listdirectory(&list, "./");
- basedirlength = 2;
- }
stringlistsort(&list);
modlist_count = 0;
modlist_numenabled = fs_numgamedirs;
if (FS_CheckNastyPath (list.strings[i], true)) continue;
if (!FS_CheckGameDir(list.strings[i])) continue;
- strlcpy (modlist[modlist_count].dir, list.strings[i] + basedirlength, sizeof(modlist[modlist_count].dir));
+ strlcpy (modlist[modlist_count].dir, list.strings[i], sizeof(modlist[modlist_count].dir));
//check currently loaded mods
modlist[modlist_count].loaded = false;
if (fs_numgamedirs)