diff options
author | Thomas Jarosch <tomj@simonv.com> | 2011-02-25 14:31:26 +0000 |
---|---|---|
committer | Thomas Jarosch <tomj@simonv.com> | 2011-02-25 14:31:26 +0000 |
commit | 70e48bf66dc76636743bfbee3e1b567d588db185 (patch) | |
tree | d14e337cf637bbe6c0b7d20d24948dc80a36a17d /firmware | |
parent | 89952213bb4364a32c7da42ee5092d655e5c0ccb (diff) | |
download | rockbox-70e48bf66dc76636743bfbee3e1b567d588db185.tar.gz rockbox-70e48bf66dc76636743bfbee3e1b567d588db185.zip |
RaaA: Create full config directory tree during initialization
Also robustify against unset HOME environment var.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29397 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-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 @@ #include <stdarg.h> #include "rbpaths.h" #include "file.h" /* MAX_PATH */ +#include "logf.h" #include "gcc_extensions.h" #include "string-extra.h" #include "filefuncs.h" @@ -70,9 +71,19 @@ void paths_init(void) #if (CONFIG_PLATFORM & PLATFORM_ANDROID) mkdir("/sdcard/rockbox"); #else - char home_path[MAX_PATH]; - snprintf(home_path, sizeof(home_path), "%s/.config/rockbox.org", getenv("HOME")); - mkdir(home_path); + char config_dir[MAX_PATH]; + + const char *home = getenv("HOME"); + if (!home) + { + logf("HOME environment var not set. Can't write config"); + return; + } + + snprintf(config_dir, sizeof(config_dir), "%s/.config", home); + mkdir(config_dir); + snprintf(config_dir, sizeof(config_dir), "%s/.config/rockbox.org", home); + mkdir(config_dir); #endif } |