diff --git a/sway/config.c b/sway/config.c index f38e37b63..ce05bc688 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