diff --git a/src/core/core.c b/src/core/core.c index 0a8ebd44..04885ec3 100644 --- a/src/core/core.c +++ b/src/core/core.c @@ -234,10 +234,15 @@ void core_preinit(const char *path) len = strlen(irssi_dir); if (irssi_dir[len - 1] == G_DIR_SEPARATOR) irssi_dir[len - 1] = '\0'; + /* all special XDG paths are equal to irssi_dir if XDG is not + * supported */ + irssi_cache_dir = irssi_dir; + irssi_runtime_dir = irssi_dir; } if (irssi_config_file == NULL) - irssi_config_file = use_xdg ? g_build_filename(g_get_user_config_dir(), "irssi", IRSSI_HOME_CONFIG, NULL) : - g_strdup_printf("%s/" IRSSI_HOME_CONFIG, irssi_dir); + irssi_config_file = use_xdg ? g_build_filename(g_get_user_config_dir(), "irssi", + IRSSI_HOME_CONFIG, NULL) : + g_strdup_printf("%s/" IRSSI_HOME_CONFIG, irssi_dir); else { str = irssi_config_file; irssi_config_file = fix_path(str); diff --git a/src/core/settings.c b/src/core/settings.c index c16427a0..46682d69 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -783,8 +783,8 @@ static void init_configfile(void) char *str; init_ensure_dir(get_irssi_dir(), 0700); /* XDG_DATA_HOME or ~/.irssi*/ - if (get_irssi_dir() != get_irssi_cache_dir() && - get_irssi_dir() != get_irssi_runtime_dir()) { + if (!strcmp(get_irssi_dir(), get_irssi_cache_dir()) && + !strcmp(get_irssi_dir(), get_irssi_runtime_dir())) { init_ensure_dir(get_irssi_cache_dir(), 0700); /* XDG_CACHE_HOME */ init_ensure_dir(get_irssi_runtime_dir(), 0700); /* XDG_RUNTIME_HOME */ }