diff options
Diffstat (limited to 'firmware/common/rbpaths.c')
-rw-r--r-- | firmware/common/rbpaths.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c index 8eebc1fe08..10fceb69d9 100644 --- a/firmware/common/rbpaths.c +++ b/firmware/common/rbpaths.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <stdarg.h> | 25 | #include <stdarg.h> |
26 | #include "rbpaths.h" | 26 | #include "rbpaths.h" |
27 | #include "file.h" /* MAX_PATH */ | 27 | #include "file.h" /* MAX_PATH */ |
28 | #include "logf.h" | ||
28 | #include "gcc_extensions.h" | 29 | #include "gcc_extensions.h" |
29 | #include "string-extra.h" | 30 | #include "string-extra.h" |
30 | #include "filefuncs.h" | 31 | #include "filefuncs.h" |
@@ -70,9 +71,19 @@ void paths_init(void) | |||
70 | #if (CONFIG_PLATFORM & PLATFORM_ANDROID) | 71 | #if (CONFIG_PLATFORM & PLATFORM_ANDROID) |
71 | mkdir("/sdcard/rockbox"); | 72 | mkdir("/sdcard/rockbox"); |
72 | #else | 73 | #else |
73 | char home_path[MAX_PATH]; | 74 | char config_dir[MAX_PATH]; |
74 | snprintf(home_path, sizeof(home_path), "%s/.config/rockbox.org", getenv("HOME")); | 75 | |
75 | mkdir(home_path); | 76 | const char *home = getenv("HOME"); |
77 | if (!home) | ||
78 | { | ||
79 | logf("HOME environment var not set. Can't write config"); | ||
80 | return; | ||
81 | } | ||
82 | |||
83 | snprintf(config_dir, sizeof(config_dir), "%s/.config", home); | ||
84 | mkdir(config_dir); | ||
85 | snprintf(config_dir, sizeof(config_dir), "%s/.config/rockbox.org", home); | ||
86 | mkdir(config_dir); | ||
76 | #endif | 87 | #endif |
77 | } | 88 | } |
78 | 89 | ||