mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +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:
		| @@ -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; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ryan C. Gordon
					Ryan C. Gordon