Create retro_dirent_include_hidden

This commit is contained in:
twinaphex 2017-07-04 04:09:45 +02:00
parent 2fda0b7e66
commit 3a141cb891
3 changed files with 21 additions and 18 deletions

View File

@ -235,6 +235,16 @@ bool retro_dirent_is_dir(struct RDIR *rdir, const char *path)
#endif #endif
} }
void retro_dirent_include_hidden(struct RDIR *rdir, bool include_hidden)
{
#ifdef _WIN32
if (include_hidden)
rdir->entry.dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN;
else
rdir->entry.dwFileAttributes &= ~FILE_ATTRIBUTE_HIDDEN;
#endif
}
void retro_closedir(struct RDIR *rdir) void retro_closedir(struct RDIR *rdir)
{ {
if (!rdir) if (!rdir)

View File

@ -38,6 +38,8 @@ int retro_readdir(struct RDIR *rdir);
bool retro_dirent_error(struct RDIR *rdir); bool retro_dirent_error(struct RDIR *rdir);
void retro_dirent_include_hidden(struct RDIR *rdir, bool include_hidden);
const char *retro_dirent_get_name(struct RDIR *rdir); const char *retro_dirent_get_name(struct RDIR *rdir);
/** /**

View File

@ -174,21 +174,10 @@ static int dir_list_read(const char *dir,
{ {
struct RDIR *entry = retro_opendir(dir); struct RDIR *entry = retro_opendir(dir);
if (!entry) if (!entry || retro_dirent_error(entry))
return -1; goto error;
if (retro_dirent_error(entry)) retro_dirent_include_hidden(entry, include_hidden);
{
retro_closedir(entry);
return -1;
}
#ifdef _WIN32
if (include_hidden)
entry->entry.dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN;
else
entry->entry.dwFileAttributes &= ~FILE_ATTRIBUTE_HIDDEN;
#endif
while (retro_readdir(entry)) while (retro_readdir(entry))
{ {
@ -222,10 +211,7 @@ static int dir_list_read(const char *dir,
include_dirs, include_compressed, list, ext_list, file_ext); include_dirs, include_compressed, list, ext_list, file_ext);
if (ret == -1) if (ret == -1)
{ goto error;
retro_closedir(entry);
return -1;
}
if (ret == 1) if (ret == 1)
continue; continue;
@ -234,6 +220,11 @@ static int dir_list_read(const char *dir,
retro_closedir(entry); retro_closedir(entry);
return 0; return 0;
error:
if (entry)
retro_closedir(entry);
return -1;
} }
/** /**