aboutsummaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sway/config.c b/sway/config.c
index f38e37b6..ce05bc68 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -71,13 +71,21 @@ static const char *search_paths[] = {
};
static char *get_config_path() {
- char *home = strdup(getenv("HOME"));
- char *config = strdup(getenv("XDG_CONFIG_HOME"));
- if (!config) {
- const char *def = "/.config/sway";
+ char *home = getenv("HOME");
+ if (home) {
+ home = strdup(getenv("HOME"));
+ }
+ char *config = getenv("XDG_CONFIG_HOME");
+ if (config) {
+ config = strdup(getenv("XDG_CONFIG_HOME"));
+ } else if (home) {
+ const char *def = "/.config";
config = malloc(strlen(home) + strlen(def) + 1);
strcpy(config, home);
strcat(config, def);
+ } else {
+ home = strdup("");
+ config = strdup("");
}
// Set up a temporary config for holding set variables