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>
This commit is contained in:
committed by
Pekka Paalanen
parent
3011493e9b
commit
28371f7d55
+13
-3
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -374,12 +375,18 @@ load_image(const char *filename)
|
|||||||
FILE *fp;
|
FILE *fp;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
fp = fopen(filename, "rb");
|
if (!filename || !*filename)
|
||||||
if (fp == NULL)
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
fp = fopen(filename, "rb");
|
||||||
|
if (!fp) {
|
||||||
|
fprintf(stderr, "%s: %s\n", filename, strerror(errno));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (fread(header, sizeof header, 1, fp) != 1) {
|
if (fread(header, sizeof header, 1, fp) != 1) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
fprintf(stderr, "%s: unable to read file header\n", filename);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,10 +402,13 @@ load_image(const char *filename)
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
if (i == ARRAY_LENGTH(loaders)) {
|
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",
|
"0x%02x 0x%02x 0x%02x 0x%02x\n",
|
||||||
filename, header[0], header[1], header[2], header[3]);
|
filename, header[0], header[1], header[2], header[3]);
|
||||||
image = NULL;
|
image = NULL;
|
||||||
|
} else if (!image) {
|
||||||
|
/* load probably printed something, but just in case */
|
||||||
|
fprintf(stderr, "%s: error reading image\n", filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
|
|||||||
Reference in New Issue
Block a user