mirror of
https://github.com/libretro/RetroArch
synced 2025-03-30 07:20:36 +00:00
Create retro_dirent_include_hidden
This commit is contained in:
parent
2fda0b7e66
commit
3a141cb891
@ -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)
|
||||||
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user