mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
SDL: Fix symlink handling by internal file manager. [qmc2]
This commit is contained in:
parent
71bdc41993
commit
07df4de8a9
@ -79,12 +79,29 @@ static char *build_full_path(const char *path, const char *file)
|
||||
|
||||
|
||||
#if HAS_DT_XXX
|
||||
static osd_dir_entry_type get_attributes_enttype(int attributes)
|
||||
static osd_dir_entry_type get_attributes_enttype(int attributes, char *path)
|
||||
{
|
||||
if (attributes == DT_DIR)
|
||||
return ENTTYPE_DIR;
|
||||
else
|
||||
return ENTTYPE_FILE;
|
||||
switch ( attributes )
|
||||
{
|
||||
case DT_DIR:
|
||||
return ENTTYPE_DIR;
|
||||
|
||||
case DT_REG:
|
||||
return ENTTYPE_FILE;
|
||||
|
||||
case DT_LNK:
|
||||
{
|
||||
struct stat s;
|
||||
|
||||
if ( stat(path, &s) != 0 )
|
||||
return ENTTYPE_OTHER;
|
||||
else
|
||||
return S_ISDIR(s.st_mode) ? ENTTYPE_DIR : ENTTYPE_FILE;
|
||||
}
|
||||
|
||||
default:
|
||||
return ENTTYPE_OTHER;
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
@ -192,7 +209,7 @@ const osd_directory_entry *osd_readdir(osd_directory *dir)
|
||||
dir->ent.name = dir->data->d_name;
|
||||
temp = build_full_path(dir->path, dir->data->d_name);
|
||||
#if HAS_DT_XXX
|
||||
dir->ent.type = get_attributes_enttype(dir->data->d_type);
|
||||
dir->ent.type = get_attributes_enttype(dir->data->d_type, temp);
|
||||
#else
|
||||
dir->ent.type = get_attributes_stat(temp);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user