summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Spitzak <spitzak@gmail.com>2014-08-19 18:13:10 -0700
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-09-11 13:01:47 +0300
commit28371f7d55ba3468bd3baa06cbab9c82b4842ade (patch)
tree129a416d79d08b7c0a5931206f71224f1b1272bb
parent3011493e9b57d558f700367a8a20afd4c1b54711 (diff)
downloadweston-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.c14
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;