diff options
Diffstat (limited to 'thumbs.c')
| -rw-r--r-- | thumbs.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| @@ -34,7 +34,6 @@  static const int thumb_dim = THUMB_SIZE + 10; -static const char * const CACHE_DIR = ".sxiv/cache";  static char *cache_dir = NULL;  bool tns_cache_enabled(void) @@ -163,7 +162,7 @@ void tns_clean_cache(tns_t *tns)  void tns_init(tns_t *tns, int cnt, win_t *win)  {  	int len; -	char *homedir; +	const char *homedir, *dsuffix = "";  	if (tns == NULL)  		return; @@ -181,12 +180,16 @@ void tns_init(tns_t *tns, int cnt, win_t *win)  	tns->alpha = !RENDER_WHITE_ALPHA;  	tns->dirty = false; -	if ((homedir = getenv("HOME")) != NULL) { +	if ((homedir = getenv("XDG_CACHE_HOME")) == NULL || homedir[0] == '\0') { +		homedir = getenv("HOME"); +		dsuffix = "/.cache"; +	} +	if (homedir != NULL) {  		if (cache_dir != NULL)  			free(cache_dir); -		len = strlen(homedir) + strlen(CACHE_DIR) + 2; +		len = strlen(homedir) + strlen(dsuffix) + 6;  		cache_dir = (char*) s_malloc(len); -		snprintf(cache_dir, len, "%s/%s", homedir, CACHE_DIR); +		snprintf(cache_dir, len, "%s%s/sxiv", homedir, dsuffix);  	} else {  		warn("could not locate thumbnail cache directory");  	} | 
