summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOLFDB <olf@eisenzelt.de>2019-03-01 14:13:10 +0100
committerGitHub <noreply@github.com>2019-03-01 14:13:10 +0100
commit95636758368907a021914d51a1a36b46e253f89b (patch)
tree15b65fd2bd9ec7c17f69b8fb16bdb2b9105af0a3
parent6b84e4796943cc960c739e5b066e667ed18b0b5d (diff)
downloadnavit-95636758368907a021914d51a1a36b46e253f89b.tar.gz
Feature: Support USERPROFILE folder for Windows
NAVIT_USER_DATADIR in Windows use USERPROFILE environment variable
-rw-r--r--navit/main.c26
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