From 0cd5890cd283b2ae6b5e2af37f6dde87a6bfe5e8 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Thu, 3 Jan 2019 19:30:41 -0800 Subject: Fix Windows implentation of get_config_dir() so config file gets saved to the right place. Fix location for sticky_path file on all platforms --- paths.c | 6 ++---- util.c | 9 ++++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/paths.c b/paths.c index 49a3c5c..4652316 100644 --- a/paths.c +++ b/paths.c @@ -7,8 +7,7 @@ static char **current_path; static void persist_path(void) { - char const *parts[] = {get_userdata_dir(), PATH_SEP, "sticky_path"}; - char *pathfname = alloc_concat_m(3, parts); + char *pathfname = alloc_concat(get_userdata_dir(), PATH_SEP "blastem" PATH_SEP "sticky_path"); FILE *f = fopen(pathfname, "wb"); if (f) { if (fwrite(*current_path, 1, strlen(*current_path), f) != strlen(*current_path)) { @@ -63,8 +62,7 @@ void get_initial_browse_path(char **dst) *dst = NULL; char *remember_path = tern_find_path(config, "ui\0remember_path\0", TVAL_PTR).ptrval; if (!remember_path || !strcmp("on", remember_path)) { - char const *parts[] = {get_userdata_dir(), PATH_SEP, "sticky_path"}; - char *pathfname = alloc_concat_m(3, parts); + char *pathfname = alloc_concat(get_userdata_dir(), PATH_SEP "blastem" PATH_SEP "sticky_path"); FILE *f = fopen(pathfname, "rb"); if (f) { long pathsize = file_size(f); diff --git a/util.c b/util.c index 7c7fd35..ea9c58c 100644 --- a/util.c +++ b/util.c @@ -891,7 +891,14 @@ char const *get_userdata_dir() char const *get_config_dir() { - return get_userdata_dir(); + static char* confdir; + if (!confdir) { + char const *base = get_userdata_dir(); + if (base) { + confdir = alloc_concat(base, PATH_SEP "blastem"); + } + } + return confdir; } #define CONFIG_PREFIX "" #define SAVE_PREFIX "" -- cgit v1.2.3