|
|
|
@ -79,7 +79,7 @@ void tns_cache_write(Imlib_Image im, const char *filepath, bool force)
|
|
|
|
|
char *cfile, *dirend;
|
|
|
|
|
struct stat cstats, fstats;
|
|
|
|
|
struct utimbuf times;
|
|
|
|
|
Imlib_Load_Error err = 0;
|
|
|
|
|
Imlib_Load_Error err;
|
|
|
|
|
|
|
|
|
|
if (options->private_mode)
|
|
|
|
|
return;
|
|
|
|
@ -93,26 +93,27 @@ void tns_cache_write(Imlib_Image im, const char *filepath, bool force)
|
|
|
|
|
{
|
|
|
|
|
if ((dirend = strrchr(cfile, '/')) != NULL) {
|
|
|
|
|
*dirend = '\0';
|
|
|
|
|
if ((err = r_mkdir(cfile)) == -1)
|
|
|
|
|
if (r_mkdir(cfile) == -1) {
|
|
|
|
|
error(0, errno, "%s", cfile);
|
|
|
|
|
*dirend = '/';
|
|
|
|
|
}
|
|
|
|
|
if (err == 0) {
|
|
|
|
|
imlib_context_set_image(im);
|
|
|
|
|
if (imlib_image_has_alpha()) {
|
|
|
|
|
imlib_image_set_format("png");
|
|
|
|
|
} else {
|
|
|
|
|
imlib_image_set_format("jpg");
|
|
|
|
|
imlib_image_attach_data_value("quality", NULL, 90, NULL);
|
|
|
|
|
goto end;
|
|
|
|
|
}
|
|
|
|
|
imlib_save_image_with_error_return(cfile, &err);
|
|
|
|
|
*dirend = '/';
|
|
|
|
|
}
|
|
|
|
|
if (err == 0) {
|
|
|
|
|
times.actime = fstats.st_atime;
|
|
|
|
|
times.modtime = fstats.st_mtime;
|
|
|
|
|
utime(cfile, ×);
|
|
|
|
|
imlib_context_set_image(im);
|
|
|
|
|
if (imlib_image_has_alpha()) {
|
|
|
|
|
imlib_image_set_format("png");
|
|
|
|
|
} else {
|
|
|
|
|
imlib_image_set_format("jpg");
|
|
|
|
|
imlib_image_attach_data_value("quality", NULL, 90, NULL);
|
|
|
|
|
}
|
|
|
|
|
imlib_save_image_with_error_return(cfile, &err);
|
|
|
|
|
if (err)
|
|
|
|
|
goto end;
|
|
|
|
|
times.actime = fstats.st_atime;
|
|
|
|
|
times.modtime = fstats.st_mtime;
|
|
|
|
|
utime(cfile, ×);
|
|
|
|
|
}
|
|
|
|
|
end:
|
|
|
|
|
free(cfile);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|