SDL_GetPrefPath() now uses the organization on all platforms.

Even if that's not the general convention for a given platform.
This commit is contained in:
Ryan C. Gordon 2013-10-23 00:58:20 -04:00
parent 298d3d627a
commit 28aa076c8b
3 changed files with 6 additions and 8 deletions

View File

@ -76,12 +76,12 @@ SDL_GetPrefPath(const char *org, const char *app)
// !!! FIXME: is there a better way to do this? // !!! FIXME: is there a better way to do this?
const char *home = SDL_getenv("HOME"); const char *home = SDL_getenv("HOME");
const char *append = "config/settings/"; 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); char *retval = (char *) SDL_malloc(len);
if (!retval) { if (!retval) {
SDL_OutOfMemory(); SDL_OutOfMemory();
} else { } 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 create_directory(retval, 0700); // BeOS api: creates missing dirs
} }

View File

@ -73,19 +73,17 @@ SDL_GetPrefPath(const char *org, const char *app)
NSArray *array = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); NSArray *array = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
char *retval = NULL; 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. */ if ([array count] > 0) { /* we only want the first item in the list. */
NSString *str = [array objectAtIndex:0]; NSString *str = [array objectAtIndex:0];
const char *base = [str fileSystemRepresentation]; const char *base = [str fileSystemRepresentation];
if (base) { 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); retval = (char *) SDL_malloc(len);
if (retval == NULL) { if (retval == NULL) {
SDL_OutOfMemory(); SDL_OutOfMemory();
} else { } else {
char *ptr; 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++) { for (ptr = retval+1; *ptr; ptr++) {
if (*ptr == '/') { if (*ptr == '/') {
*ptr = '\0'; *ptr = '\0';

View File

@ -178,14 +178,14 @@ SDL_GetPrefPath(const char *org, const char *app)
if (envr[len - 1] == '/') if (envr[len - 1] == '/')
append += 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); retval = (char *) SDL_malloc(len);
if (!retval) { if (!retval) {
SDL_OutOfMemory(); SDL_OutOfMemory();
return NULL; 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++) { for (ptr = retval+1; *ptr; ptr++) {
if (*ptr == '/') { if (*ptr == '/') {