mirror of https://github.com/OpenRCT2/OpenRCT2.git
Moved the configuration on OS X to ~/Library/Application Support/OpenRCT2
This commit is contained in:
parent
3ba4677bd9
commit
c2202f6260
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
// See http://syprog.blogspot.ru/2011/12/listing-loaded-shared-objects-in-linux.html
|
// See http://syprog.blogspot.ru/2011/12/listing-loaded-shared-objects-in-linux.html
|
||||||
struct lmap {
|
struct lmap {
|
||||||
|
@ -78,4 +79,36 @@ bool platform_check_steam_overlay_attached() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default directory fallback is:
|
||||||
|
* - (command line argument)
|
||||||
|
* - $XDG_CONFIG_HOME/OpenRCT2
|
||||||
|
* - /home/[uid]/.config/OpenRCT2
|
||||||
|
*/
|
||||||
|
void platform_posix_sub_user_data_path(char *buffer, const char *homedir, const char *separator) {
|
||||||
|
const char *configdir = getenv("XDG_CONFIG_HOME");
|
||||||
|
log_verbose("configdir = '%s'", configdir);
|
||||||
|
if (configdir == NULL)
|
||||||
|
{
|
||||||
|
log_verbose("configdir was null, used getuid, now is = '%s'", homedir);
|
||||||
|
if (homedir == NULL)
|
||||||
|
{
|
||||||
|
log_fatal("Couldn't find user data directory");
|
||||||
|
exit(-1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
strncat(buffer, homedir, MAX_PATH - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, ".config", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strncat(buffer, configdir, MAX_PATH - 1);
|
||||||
|
}
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, "OpenRCT2", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -52,4 +52,27 @@ void platform_get_exe_path(utf8 *outPath)
|
||||||
outPath[exeDelimiterIndex] = '\0';
|
outPath[exeDelimiterIndex] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default directory fallback is:
|
||||||
|
* - (command line argument)
|
||||||
|
* - ~/Library/Application Support/OpenRCT2
|
||||||
|
*/
|
||||||
|
void platform_posix_sub_user_data_path(char *buffer, const char *homedir, const char *separator) {
|
||||||
|
if (homedir == NULL)
|
||||||
|
{
|
||||||
|
log_fatal("Couldn't find user data directory");
|
||||||
|
exit(-1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
strncat(buffer, homedir, MAX_PATH - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, "Library", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, "Application Support", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, "OpenRCT2", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -528,11 +528,12 @@ wchar_t *regular_to_wchar(const char* src)
|
||||||
return w_buffer;
|
return w_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void platform_posix_sub_user_data_path(char *buffer, const char *homedir, const char *separator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default directory fallback is:
|
* Default directory fallback is:
|
||||||
* - (command line argument)
|
* - (command line argument)
|
||||||
* - $XDG_CONFIG_HOME/OpenRCT2
|
* - <platform dependent>
|
||||||
* - /home/[uid]/.config/OpenRCT2
|
|
||||||
*/
|
*/
|
||||||
void platform_resolve_user_data_path()
|
void platform_resolve_user_data_path()
|
||||||
{
|
{
|
||||||
|
@ -552,30 +553,10 @@ void platform_resolve_user_data_path()
|
||||||
char buffer[MAX_PATH];
|
char buffer[MAX_PATH];
|
||||||
buffer[0] = '\0';
|
buffer[0] = '\0';
|
||||||
log_verbose("buffer = '%s'", buffer);
|
log_verbose("buffer = '%s'", buffer);
|
||||||
const char *homedir = getenv("XDG_CONFIG_HOME");
|
|
||||||
log_verbose("homedir = '%s'", homedir);
|
|
||||||
if (homedir == NULL)
|
|
||||||
{
|
|
||||||
homedir = getpwuid(getuid())->pw_dir;
|
|
||||||
log_verbose("homedir was null, used getuid, now is = '%s'", homedir);
|
|
||||||
if (homedir == NULL)
|
|
||||||
{
|
|
||||||
log_fatal("Couldn't find user data directory");
|
|
||||||
exit(-1);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
strncat(buffer, homedir, MAX_PATH - 1);
|
const char *homedir = getpwuid(getuid())->pw_dir;
|
||||||
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
platform_posix_sub_user_data_path(buffer, homedir, separator);
|
||||||
strncat(buffer, ".config", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strncat(buffer, homedir, MAX_PATH - 1);
|
|
||||||
}
|
|
||||||
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
|
||||||
strncat(buffer, "OpenRCT2", MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
|
||||||
strncat(buffer, separator, MAX_PATH - strnlen(buffer, MAX_PATH) - 1);
|
|
||||||
log_verbose("OpenRCT2 user data directory = '%s'", buffer);
|
log_verbose("OpenRCT2 user data directory = '%s'", buffer);
|
||||||
int len = strnlen(buffer, MAX_PATH);
|
int len = strnlen(buffer, MAX_PATH);
|
||||||
wchar_t *w_buffer = regular_to_wchar(buffer);
|
wchar_t *w_buffer = regular_to_wchar(buffer);
|
||||||
|
|
Loading…
Reference in New Issue