diff options
author | OLFDB <olf@eisenzelt.de> | 2019-03-01 14:13:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-01 14:13:10 +0100 |
commit | 95636758368907a021914d51a1a36b46e253f89b (patch) | |
tree | 15b65fd2bd9ec7c17f69b8fb16bdb2b9105af0a3 | |
parent | 6b84e4796943cc960c739e5b066e667ed18b0b5d (diff) | |
download | navit-95636758368907a021914d51a1a36b46e253f89b.tar.gz |
Feature: Support USERPROFILE folder for Windows
NAVIT_USER_DATADIR in Windows use USERPROFILE environment variable
-rw-r--r-- | navit/main.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/navit/main.c b/navit/main.c index 986947f0d..21149aa92 100644 --- a/navit/main.c +++ b/navit/main.c @@ -86,7 +86,20 @@ void setenv(char *var, char *val, int overwrite) { * ':' is replaced with NAVIT_PREFIX * '::' is replaced with NAVIT_PREFIX and LIBDIR * '~' is replaced with HOME + * ';' is replaced with USERPROFILE for Windows */ + +#ifdef HAVE_API_WIN32_BASE && !HAVE_API_WIN32_CE +static char *environment_vars[][5]= { + {"NAVIT_LIBDIR", ":", ":/"LIB_DIR, ":\\lib", ":/lib"}, + {"NAVIT_SHAREDIR", ":", ":/"SHARE_DIR, ":", ":/share"}, + {"NAVIT_LOCALEDIR", ":/../locale",":/"LOCALE_DIR, ":\\locale", ":/locale"}, + {"NAVIT_USER_DATADIR",":", "~/.navit", ";\\navit", ":/home"}, + {"NAVIT_LOGFILE", NULL, NULL, ":\\navit.log",NULL}, + {"NAVIT_LIBPREFIX", "*/.libs/", NULL, NULL, NULL}, + {NULL, NULL, NULL, NULL, NULL}, +}; +#else static char *environment_vars[][5]= { {"NAVIT_LIBDIR", ":", ":/"LIB_DIR, ":\\lib", ":/lib"}, {"NAVIT_SHAREDIR", ":", ":/"SHARE_DIR, ":", ":/share"}, @@ -96,6 +109,8 @@ static char *environment_vars[][5]= { {"NAVIT_LIBPREFIX", "*/.libs/", NULL, NULL, NULL}, {NULL, NULL, NULL, NULL, NULL}, }; +#endif + static void main_setup_environment(int mode) { int i=0; @@ -116,6 +131,14 @@ static void main_setup_environment(int mode) { homedir="./"; val=g_strdup_printf("%s%s", homedir, val+1); break; + #ifdef HAVE_API_WIN32_BASE && !HAVE_API_WIN32_CE + case ';': + homedir = getenv("USERPROFILE"); + if (!homedir) + homedir = "./"; + val = g_strdup_printf("%s%s", homedir, val + 1); + break; + #endif default: val=g_strdup(val); break; @@ -125,6 +148,9 @@ static void main_setup_environment(int mode) { } i++; } +#ifdef HAVE_API_WIN32_BASE && !HAVE_API_WIN32_CE + navit_get_user_data_directory(1); /* Create the user data directory */ +#endif } #ifdef HAVE_API_WIN32_BASE |