diff --git a/image.c b/image.c index fd14ccc..d1a1e35 100644 --- a/image.c +++ b/image.c @@ -52,7 +52,7 @@ void img_free(img_t* img) { imlib_free_image(); } -int img_check(const char *filename) { +int _imlib_load_image(const char *filename) { Imlib_Image *im; if (!filename) @@ -65,28 +65,30 @@ int img_check(const char *filename) { imlib_context_set_image(im); imlib_image_set_changes_on_disk(); - imlib_free_image(); - + return 1; } -int img_load(img_t *img, const char *filename) { - Imlib_Image *im; +int img_check(const char *filename) { + int ret; + if ((ret = _imlib_load_image(filename))) + imlib_free_image(); + + return ret; +} + +int img_load(img_t *img, const char *filename) { if (!img || !filename) return 0; if (imlib_context_get_image()) imlib_free_image(); - if (!(im = imlib_load_image(filename))) { - WARN("could not open image: %s", filename); + if (!_imlib_load_image(filename)) return 0; - } - imlib_context_set_image(im); imlib_context_set_anti_alias(img->aa); - imlib_image_set_changes_on_disk(); img->re = 0; img->checkpan = 0;