This commit is contained in:
dborth 2011-01-21 02:36:25 +00:00
parent c5c6e7be1e
commit b1e0effdb0

View File

@ -482,6 +482,7 @@ bool ParseDirEntries()
return false;
char *ext;
char path[MAXPATHLEN+1];
struct dirent *entry;
struct stat filestat;
@ -497,22 +498,32 @@ bool ParseDirEntries()
if(entry->d_name[0] == '.' && entry->d_name[1] != '.')
continue;
ext = GetExt(entry->d_name);
stat(entry->d_name,&filestat);
// don't show the file if it's not a valid ROM
if(parseFilter && (filestat.st_mode & _IFDIR) == 0)
if(strcmp(entry->d_name, "..") == 0)
{
if(ext == NULL)
filestat.st_mode = _IFDIR;
}
else
{
ext = GetExt(entry->d_name);
snprintf(path, MAXPATHLEN, "%s%s", browser.dir, entry->d_name);
if(stat(path, &filestat) < 0)
continue;
if( stricmp(ext, "agb") != 0 && stricmp(ext, "gba") != 0 &&
stricmp(ext, "bin") != 0 && stricmp(ext, "elf") != 0 &&
stricmp(ext, "mb") != 0 && stricmp(ext, "dmg") != 0 &&
stricmp(ext, "gb") != 0 && stricmp(ext, "gbc") != 0 &&
stricmp(ext, "cgb") != 0 && stricmp(ext, "sgb") != 0 &&
stricmp(ext, "zip") != 0 && stricmp(ext, "7z") != 0)
continue;
// don't show the file if it's not a valid ROM
if(parseFilter && (filestat.st_mode & _IFDIR) == 0)
{
if(ext == NULL)
continue;
if( stricmp(ext, "agb") != 0 && stricmp(ext, "gba") != 0 &&
stricmp(ext, "bin") != 0 && stricmp(ext, "elf") != 0 &&
stricmp(ext, "mb") != 0 && stricmp(ext, "dmg") != 0 &&
stricmp(ext, "gb") != 0 && stricmp(ext, "gbc") != 0 &&
stricmp(ext, "cgb") != 0 && stricmp(ext, "sgb") != 0 &&
stricmp(ext, "zip") != 0 && stricmp(ext, "7z") != 0)
continue;
}
}
if(!AddBrowserEntry())