mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-04-03 14:19:20 +00:00
Use a base path of "./" on Android
This allows filesystem operations to use internal storage and the asset system by default.
This commit is contained in:
@@ -77,6 +77,8 @@ extern "C" {
|
||||
* - `parent`: the containing directory of the bundle. For example:
|
||||
* `/Applications/SDLApp/`
|
||||
*
|
||||
* **Android Specific Functionality**: This function returns "./", which allows filesystem operations to use internal storage and the asset system.
|
||||
*
|
||||
* **Nintendo 3DS Specific Functionality**: This function returns "romfs"
|
||||
* directory of the application as it is uncommon to store resources outside
|
||||
* the executable. As such it is not a writable directory.
|
||||
|
||||
@@ -31,9 +31,7 @@
|
||||
|
||||
char *SDL_SYS_GetBasePath(void)
|
||||
{
|
||||
// The current working directory is / on Android
|
||||
SDL_Unsupported();
|
||||
return NULL;
|
||||
return SDL_strdup("./");
|
||||
}
|
||||
|
||||
char *SDL_SYS_GetPrefPath(const char *org, const char *app)
|
||||
|
||||
@@ -263,12 +263,7 @@ static SDL_Storage *GENERIC_Title_Create(const char *override, SDL_PropertiesID
|
||||
}
|
||||
} else {
|
||||
const char *base = SDL_GetBasePath();
|
||||
// On Android, SDL_GetBasePath() can be NULL: use empty base.
|
||||
#ifdef SDL_PLATFORM_ANDROID
|
||||
basepath = base ? SDL_strdup(base) : SDL_strdup("");
|
||||
#else
|
||||
basepath = base ? SDL_strdup(base) : NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (basepath != NULL) {
|
||||
@@ -343,8 +338,13 @@ SDL_Storage *GENERIC_OpenFileStorage(const char *path)
|
||||
SDL_Storage *result;
|
||||
char *basepath = NULL;
|
||||
char *prepend = NULL;
|
||||
bool is_absolute = false;
|
||||
|
||||
#ifdef SDL_PLATFORM_ANDROID
|
||||
// Use a base path of "." so the filesystem operations fall back to internal storage and the asset system
|
||||
if (!path || !*path) {
|
||||
path = "./";
|
||||
}
|
||||
#else
|
||||
if (!path || !*path) {
|
||||
#ifdef SDL_PLATFORM_WINDOWS
|
||||
path = "C:/";
|
||||
@@ -353,6 +353,7 @@ SDL_Storage *GENERIC_OpenFileStorage(const char *path)
|
||||
#endif
|
||||
}
|
||||
|
||||
bool is_absolute = false;
|
||||
#ifdef SDL_PLATFORM_WINDOWS
|
||||
const char ch = (char) SDL_toupper(path[0]);
|
||||
is_absolute = (ch == '/') || // some sort of absolute Unix-style path.
|
||||
@@ -367,6 +368,7 @@ SDL_Storage *GENERIC_OpenFileStorage(const char *path)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif // SDL_PLATFORM_ANDROID
|
||||
|
||||
const size_t len = SDL_strlen(path);
|
||||
const char *appended_separator = "";
|
||||
|
||||
Reference in New Issue
Block a user