diff options
author | Bill Spitzak <spitzak@gmail.com> | 2014-08-19 18:13:10 -0700 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-09-11 13:01:47 +0300 |
commit | 28371f7d55ba3468bd3baa06cbab9c82b4842ade (patch) | |
tree | 129a416d79d08b7c0a5931206f71224f1b1272bb | |
parent | 3011493e9b57d558f700367a8a20afd4c1b54711 (diff) | |
download | weston-28371f7d55ba3468bd3baa06cbab9c82b4842ade.tar.gz weston-28371f7d55ba3468bd3baa06cbab9c82b4842ade.tar.bz2 weston-28371f7d55ba3468bd3baa06cbab9c82b4842ade.zip |
load_image: always print a message on failure if filename is not empty
It was rather inconsistent before. This may help users figure out why
backgrounds and icons don't show up. A better api where the error can
be queried might be nice, but this seems sufficient for current Weston use.
[Pekka Paalanen: removed one stray space.]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | shared/image-loader.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/shared/image-loader.c b/shared/image-loader.c index 35dadd3d..c4d763f3 100644 --- a/shared/image-loader.c +++ b/shared/image-loader.c @@ -23,6 +23,7 @@ #include "config.h" +#include <errno.h> #include <stdlib.h> #include <stdio.h> #include <string.h> @@ -374,12 +375,18 @@ load_image(const char *filename) FILE *fp; unsigned int i; + if (!filename || !*filename) + return NULL; + fp = fopen(filename, "rb"); - if (fp == NULL) + if (!fp) { + fprintf(stderr, "%s: %s\n", filename, strerror(errno)); return NULL; + } if (fread(header, sizeof header, 1, fp) != 1) { fclose(fp); + fprintf(stderr, "%s: unable to read file header\n", filename); return NULL; } @@ -395,10 +402,13 @@ load_image(const char *filename) fclose(fp); if (i == ARRAY_LENGTH(loaders)) { - fprintf(stderr, "unrecognized file header for %s: " + fprintf(stderr, "%s: unrecognized file header " "0x%02x 0x%02x 0x%02x 0x%02x\n", filename, header[0], header[1], header[2], header[3]); image = NULL; + } else if (!image) { + /* load probably printed something, but just in case */ + fprintf(stderr, "%s: error reading image\n", filename); } return image; |