summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorThomas Jarosch <tomj@simonv.com>2011-02-25 14:31:26 +0000
committerThomas Jarosch <tomj@simonv.com>2011-02-25 14:31:26 +0000
commit70e48bf66dc76636743bfbee3e1b567d588db185 (patch)
treed14e337cf637bbe6c0b7d20d24948dc80a36a17d /firmware
parent89952213bb4364a32c7da42ee5092d655e5c0ccb (diff)
downloadrockbox-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.c17
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
}