From 28aa076c8b51d4bc20802c7ce720db1d2fd1aa49 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 23 Oct 2013 00:58:20 -0400 Subject: [PATCH] SDL_GetPrefPath() now uses the organization on all platforms. Even if that's not the general convention for a given platform. --- src/filesystem/beos/SDL_sysfilesystem.cc | 4 ++-- src/filesystem/cocoa/SDL_sysfilesystem.m | 6 ++---- src/filesystem/unix/SDL_sysfilesystem.c | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/filesystem/beos/SDL_sysfilesystem.cc b/src/filesystem/beos/SDL_sysfilesystem.cc index decf84cc0..dc7a97064 100644 --- a/src/filesystem/beos/SDL_sysfilesystem.cc +++ b/src/filesystem/beos/SDL_sysfilesystem.cc @@ -76,12 +76,12 @@ SDL_GetPrefPath(const char *org, const char *app) // !!! FIXME: is there a better way to do this? const char *home = SDL_getenv("HOME"); const char *append = "config/settings/"; - const size_t len = SDL_strlen(home) + SDL_strlen(append) + SDL_strlen(app) + 2; + const size_t len = SDL_strlen(home) + SDL_strlen(append) + SDL_strlen(org) + SDL_strlen(app) + 3; char *retval = (char *) SDL_malloc(len); if (!retval) { SDL_OutOfMemory(); } else { - SDL_snprintf(retval, len, "%s%s%s/", home, append, app); + SDL_snprintf(retval, len, "%s%s%s/%s/", home, append, org, app); create_directory(retval, 0700); // BeOS api: creates missing dirs } diff --git a/src/filesystem/cocoa/SDL_sysfilesystem.m b/src/filesystem/cocoa/SDL_sysfilesystem.m index 67ae24a58..760830a7f 100644 --- a/src/filesystem/cocoa/SDL_sysfilesystem.m +++ b/src/filesystem/cocoa/SDL_sysfilesystem.m @@ -73,19 +73,17 @@ SDL_GetPrefPath(const char *org, const char *app) NSArray *array = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); char *retval = NULL; - (void) org; /* unused on Mac OS X and iOS. */ - if ([array count] > 0) { /* we only want the first item in the list. */ NSString *str = [array objectAtIndex:0]; const char *base = [str fileSystemRepresentation]; if (base) { - const size_t len = SDL_strlen(base) + SDL_strlen(app) + 3; + const size_t len = SDL_strlen(base) + SDL_strlen(app) + 4; retval = (char *) SDL_malloc(len); if (retval == NULL) { SDL_OutOfMemory(); } else { char *ptr; - SDL_snprintf(retval, len, "%s/%s/", base, app); + SDL_snprintf(retval, len, "%s/%s/%s/", base, org, app); for (ptr = retval+1; *ptr; ptr++) { if (*ptr == '/') { *ptr = '\0'; diff --git a/src/filesystem/unix/SDL_sysfilesystem.c b/src/filesystem/unix/SDL_sysfilesystem.c index e1d06c449..0f6e62e24 100644 --- a/src/filesystem/unix/SDL_sysfilesystem.c +++ b/src/filesystem/unix/SDL_sysfilesystem.c @@ -178,14 +178,14 @@ SDL_GetPrefPath(const char *org, const char *app) if (envr[len - 1] == '/') append += 1; - len += SDL_strlen(append) + SDL_strlen(app) + 2; + len += SDL_strlen(append) + SDL_strlen(org) + SDL_strlen(app) + 3; retval = (char *) SDL_malloc(len); if (!retval) { SDL_OutOfMemory(); return NULL; } - SDL_snprintf(retval, len, "%s%s%s/", envr, append, app); + SDL_snprintf(retval, len, "%s%s%s/%s/", envr, append, org, app); for (ptr = retval+1; *ptr; ptr++) { if (*ptr == '/') {