mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-06-01 01:17:40 +00:00
storage: enumerate and glob on storage can accept a NULL path.
This will be treated as the root of the storage tree.
This commit is contained in:
parent
a6a8598b98
commit
010f27dc70
2 changed files with 16 additions and 7 deletions
|
@ -543,8 +543,11 @@ extern SDL_DECLSPEC bool SDLCALL SDL_CreateStorageDirectory(SDL_Storage *storage
|
||||||
* returned SDL_ENUM_SUCCESS to halt enumeration, or all directory entries
|
* returned SDL_ENUM_SUCCESS to halt enumeration, or all directory entries
|
||||||
* were enumerated.
|
* were enumerated.
|
||||||
*
|
*
|
||||||
|
* If `path` is NULL, this is treated as a request to enumerate the root of
|
||||||
|
* the storage container's tree. An empty string also works for this.
|
||||||
|
*
|
||||||
* \param storage a storage container.
|
* \param storage a storage container.
|
||||||
* \param path the path of the directory to enumerate.
|
* \param path the path of the directory to enumerate, or NULL for the root.
|
||||||
* \param callback a function that is called for each entry in the directory.
|
* \param callback a function that is called for each entry in the directory.
|
||||||
* \param userdata a pointer that is passed to `callback`.
|
* \param userdata a pointer that is passed to `callback`.
|
||||||
* \returns true on success or false on failure; call SDL_GetError() for more
|
* \returns true on success or false on failure; call SDL_GetError() for more
|
||||||
|
@ -646,8 +649,11 @@ extern SDL_DECLSPEC Uint64 SDLCALL SDL_GetStorageSpaceRemaining(SDL_Storage *sto
|
||||||
* convenience, but if `count` is non-NULL, on return it will contain the
|
* convenience, but if `count` is non-NULL, on return it will contain the
|
||||||
* number of items in the array, not counting the NULL terminator.
|
* number of items in the array, not counting the NULL terminator.
|
||||||
*
|
*
|
||||||
|
* If `path` is NULL, this is treated as a request to enumerate the root of
|
||||||
|
* the storage container's tree. An empty string also works for this.
|
||||||
|
*
|
||||||
* \param storage a storage container.
|
* \param storage a storage container.
|
||||||
* \param path the path of the directory to enumerate.
|
* \param path the path of the directory to enumerate, or NULL for the root.
|
||||||
* \param pattern the pattern that files in the directory must match. Can be
|
* \param pattern the pattern that files in the directory must match. Can be
|
||||||
* NULL.
|
* NULL.
|
||||||
* \param flags `SDL_GLOB_*` bitflags that affect this search.
|
* \param flags `SDL_GLOB_*` bitflags that affect this search.
|
||||||
|
|
|
@ -284,8 +284,10 @@ bool SDL_EnumerateStorageDirectory(SDL_Storage *storage, const char *path, SDL_E
|
||||||
CHECK_STORAGE_MAGIC()
|
CHECK_STORAGE_MAGIC()
|
||||||
|
|
||||||
if (!path) {
|
if (!path) {
|
||||||
return SDL_InvalidParamError("path");
|
path = ""; // we allow NULL to mean "root of the storage tree".
|
||||||
} else if (!ValidateStoragePath(path)) {
|
}
|
||||||
|
|
||||||
|
if (!ValidateStoragePath(path)) {
|
||||||
return false;
|
return false;
|
||||||
} else if (!storage->iface.enumerate) {
|
} else if (!storage->iface.enumerate) {
|
||||||
return SDL_Unsupported();
|
return SDL_Unsupported();
|
||||||
|
@ -396,9 +398,10 @@ char **SDL_GlobStorageDirectory(SDL_Storage *storage, const char *path, const ch
|
||||||
CHECK_STORAGE_MAGIC_RET(NULL)
|
CHECK_STORAGE_MAGIC_RET(NULL)
|
||||||
|
|
||||||
if (!path) {
|
if (!path) {
|
||||||
SDL_InvalidParamError("path");
|
path = ""; // we allow NULL to mean "root of the storage tree".
|
||||||
return NULL;
|
}
|
||||||
} else if (!ValidateStoragePath(path)) {
|
|
||||||
|
if (!ValidateStoragePath(path)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue