Image loading error now just warns.

Rather than exiting with error.
This commit is contained in:
phillbush 2020-08-12 20:49:55 -03:00
parent ed1650a70f
commit f66f4c1823

13
xmenu.c
View File

@ -574,8 +574,6 @@ parsestdin(void)
file = label + 4; file = label + 4;
label = strtok(NULL, "\t\n"); label = strtok(NULL, "\t\n");
} }
if (file && *file == '\0')
errx(1, "blank icon filename");
/* get the output */ /* get the output */
output = strtok(NULL, "\n"); output = strtok(NULL, "\n");
@ -897,7 +895,10 @@ loadicon(const char *file)
int imgsize; int imgsize;
icon = imlib_load_image_with_error_return(file, &errcode); icon = imlib_load_image_with_error_return(file, &errcode);
if (icon == NULL) { if (*file == '\0') {
warnx("could not load icon (file name is blank)");
return NULL;
} else if (icon == NULL) {
switch (errcode) { switch (errcode) {
case IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST: case IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST:
errstr = "file does not exist"; errstr = "file does not exist";
@ -933,7 +934,8 @@ loadicon(const char *file)
errstr = "unknown error"; errstr = "unknown error";
break; break;
} }
errx(1, "could not load icon (%s): %s", errstr, file); warnx("could not load icon (%s): %s", errstr, file);
return NULL;
} }
imlib_context_set_image(icon); imlib_context_set_image(icon);
@ -1012,9 +1014,10 @@ drawitems(struct Menu *menu)
} }
/* draw icon */ /* draw icon */
if (item->file != NULL && !iflag) { if (item->file && !iflag)
item->icon = loadicon(item->file); item->icon = loadicon(item->file);
if (item->icon) {
imlib_context_set_image(item->icon); imlib_context_set_image(item->icon);
imlib_context_set_drawable(item->sel); imlib_context_set_drawable(item->sel);
imlib_render_image_on_drawable(config.horzpadding, config.iconpadding); imlib_render_image_on_drawable(config.horzpadding, config.iconpadding);