Index: completion.c =================================================================== --- completion.c (revision 397) +++ completion.c (working copy) @@ -56,14 +56,11 @@ if (g_file_test(user_cache_filename, G_FILE_TEST_EXISTS)) { result_filename = g_strdup(user_cache_filename); - } else if (xdg_cache_home == NULL || *xdg_cache_home == '\0') { - - if (g_file_test(home_folder_filename, G_FILE_TEST_EXISTS)) { - result_filename = g_strdup(home_folder_filename); - } + } else if (xdg_cache_home != NULL && *xdg_cache_home != '\0') { + result_filename = g_strdup(xdg_cache_home_filename); } else { - result_filename = g_strdup(xdg_cache_home_filename); + result_filename = g_strdup(home_folder_filename); } g_free(filename); Index: prefs.c =================================================================== --- prefs.c (revision 397) +++ prefs.c (working copy) @@ -354,16 +354,14 @@ // Use the user_config_home_filename result_filename = g_strdup(user_config_home_filename); - } else if (xdg_config_home == NULL || *xdg_config_home == '\0') { - // use the getenv(HOME) one - if (g_file_test(getenv_home_filename, G_FILE_TEST_EXISTS)) { - result_filename = g_strdup(getenv_home_filename); - } - } - else { + } else if (xdg_config_home != NULL && *xdg_config_home != '\0') { // use the xdg one result_filename = g_strdup(xdg_config_home_filename); } + else { + // use the getenv(HOME) one + result_filename = g_strdup(getenv_home_filename); + } g_free(xdg_config_home_filename); g_free(getenv_home_filename);