Removed the reserved parameter from SDL_EnumerateDirectoryCallback
If someone needs to, say, include an SDL_Storage object, they can simply point userdata at a structure that includes the the storage and any other data needed in enumeration.main
parent
ec3ba387d1
commit
7a088527c1
|
@ -269,8 +269,8 @@ typedef struct SDL_PathInfo
|
||||||
*/
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_CreateDirectory(const char *path);
|
extern DECLSPEC int SDLCALL SDL_CreateDirectory(const char *path);
|
||||||
|
|
||||||
/* Callback for filesystem enumeration. Return 1 to keep enumerating, 0 to stop enumerating (no error), -1 to stop enumerating and report an error. "origdir" is the directory being enumerated, "fname" is the enumerated entry. */
|
/* Callback for directory enumeration. Return 1 to keep enumerating, 0 to stop enumerating (no error), -1 to stop enumerating and report an error. `dirname` is the directory being enumerated, `fname` is the enumerated entry. */
|
||||||
typedef int (SDLCALL *SDL_EnumerateDirectoryCallback)(void *userdata, void *reserved, const char *origdir, const char *fname);
|
typedef int (SDLCALL *SDL_EnumerateDirectoryCallback)(void *userdata, const char *dirname, const char *fname);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enumerate a directory.
|
* Enumerate a directory.
|
||||||
|
|
|
@ -50,5 +50,5 @@ int SDL_SYS_FSstat(const char *fullpath, SDL_PathInfo *st)
|
||||||
return SDL_Unsupported();
|
return SDL_Unsupported();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // SDL_FSOPS_DUMMY
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ int SDL_SYS_FSenumerate(const char *fullpath, const char *dirname, SDL_Enumerate
|
||||||
if ((SDL_strcmp(name, ".") == 0) || (SDL_strcmp(name, "..") == 0)) {
|
if ((SDL_strcmp(name, ".") == 0) || (SDL_strcmp(name, "..") == 0)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
retval = cb(userdata, NULL, dirname, name);
|
retval = cb(userdata, dirname, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
|
@ -134,5 +134,5 @@ int SDL_SYS_FSstat(const char *fullpath, SDL_PathInfo *info)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // SDL_FSOPS_POSIX
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ int SDL_SYS_FSenumerate(const char *fullpath, const char *dirname, SDL_Enumerate
|
||||||
for (int i = 'A'; (retval == 1) && (i <= 'Z'); i++) {
|
for (int i = 'A'; (retval == 1) && (i <= 'Z'); i++) {
|
||||||
if (drives & (1 << (i - 'A'))) {
|
if (drives & (1 << (i - 'A'))) {
|
||||||
name[0] = (char) i;
|
name[0] = (char) i;
|
||||||
retval = cb(userdata, NULL, dirname, name);
|
retval = cb(userdata, dirname, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,7 +49,7 @@ int SDL_SYS_FSenumerate(const char *fullpath, const char *dirname, SDL_Enumerate
|
||||||
// filename element at the end of the path string, so always tack on a "\\*" to get everything, and
|
// filename element at the end of the path string, so always tack on a "\\*" to get everything, and
|
||||||
// also prevent any wildcards inserted by the app from being respected.
|
// also prevent any wildcards inserted by the app from being respected.
|
||||||
SDL_snprintf(pattern, patternlen, "%s\\*", fullpath);
|
SDL_snprintf(pattern, patternlen, "%s\\*", fullpath);
|
||||||
|
|
||||||
WCHAR *wpattern = WIN_UTF8ToString(pattern);
|
WCHAR *wpattern = WIN_UTF8ToString(pattern);
|
||||||
SDL_free(pattern);
|
SDL_free(pattern);
|
||||||
if (!wpattern) {
|
if (!wpattern) {
|
||||||
|
@ -76,7 +76,7 @@ int SDL_SYS_FSenumerate(const char *fullpath, const char *dirname, SDL_Enumerate
|
||||||
if (!utf8fn) {
|
if (!utf8fn) {
|
||||||
retval = -1;
|
retval = -1;
|
||||||
} else {
|
} else {
|
||||||
retval = cb(userdata, NULL, dirname, utf8fn);
|
retval = cb(userdata, dirname, utf8fn);
|
||||||
SDL_free(utf8fn);
|
SDL_free(utf8fn);
|
||||||
}
|
}
|
||||||
} while ((retval == 1) && (FindNextFileW(dir, &entw) != 0));
|
} while ((retval == 1) && (FindNextFileW(dir, &entw) != 0));
|
||||||
|
@ -184,5 +184,5 @@ int SDL_SYS_FSstat(const char *fullpath, SDL_PathInfo *info)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // SDL_FSOPS_WINDOWS
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include <SDL3/SDL_main.h>
|
#include <SDL3/SDL_main.h>
|
||||||
#include <SDL3/SDL_test.h>
|
#include <SDL3/SDL_test.h>
|
||||||
|
|
||||||
static int SDLCALL enum_callback(void *userdata, void *reserved, const char *origdir, const char *fname)
|
static int SDLCALL enum_callback(void *userdata, const char *origdir, const char *fname)
|
||||||
{
|
{
|
||||||
SDL_PathInfo info;
|
SDL_PathInfo info;
|
||||||
char *fullpath = NULL;
|
char *fullpath = NULL;
|
||||||
|
|
Loading…
Reference in New Issue