Sfoglia il codice sorgente

Improving error messages for icon loading

master
phillbush 4 anni fa
parent
commit
ed1650a70f
1 ha cambiato i file con 43 aggiunte e 3 eliminazioni
  1. +43
    -3
      xmenu.c

+ 43
- 3
xmenu.c Vedi File

@@ -574,6 +574,8 @@ parsestdin(void)
file = label + 4;
label = strtok(NULL, "\t\n");
}
if (file && *file == '\0')
errx(1, "blank icon filename");

/* get the output */
output = strtok(NULL, "\n");
@@ -888,13 +890,51 @@ static Imlib_Image
loadicon(const char *file)
{
Imlib_Image icon;
Imlib_Load_Error errcode;
const char *errstr;
int width;
int height;
int imgsize;

icon = imlib_load_image(file);
if (icon == NULL)
errx(1, "could not load icon %s", file);
icon = imlib_load_image_with_error_return(file, &errcode);
if (icon == NULL) {
switch (errcode) {
case IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST:
errstr = "file does not exist";
break;
case IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY:
errstr = "file is directory";
break;
case IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ:
case IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE:
errstr = "permission denied";
break;
case IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT:
errstr = "unknown file format";
break;
case IMLIB_LOAD_ERROR_PATH_TOO_LONG:
errstr = "path too long";
break;
case IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT:
case IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY:
case IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE:
errstr = "improper path";
break;
case IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS:
errstr = "too many symbolic links";
break;
case IMLIB_LOAD_ERROR_OUT_OF_MEMORY:
errstr = "out of memory";
break;
case IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS:
errstr = "out of file descriptors";
break;
default:
errstr = "unknown error";
break;
}
errx(1, "could not load icon (%s): %s", errstr, file);
}

imlib_context_set_image(icon);



Loading…
Annulla
Salva