diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2019-01-29 21:53:50 +0000 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2019-01-29 22:26:22 +0000 |
commit | 5ea3ec05df4d0d39f876e922f4a19022c180e302 (patch) | |
tree | bf61faa97a1a6cdb36f9480c56b6c6958e6b8242 | |
parent | 4461e36a26873a11340397de309a66e11b68c444 (diff) | |
download | imv-5ea3ec05df4d0d39f876e922f4a19022c180e302.tar.gz |
imv: Improve failed load error handling
-rw-r--r-- | src/imv.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -255,7 +255,8 @@ static void source_callback(struct imv_source_message *msg) imv->last_source = msg->source; } else { event.type = imv->events.BAD_IMAGE; - event.user.data1 = strdup(msg->error); + /* TODO: Something more elegant with error messages */ + /* event.user.data1 = strdup(msg->error); */ } SDL_PushEvent(&event); @@ -944,8 +945,7 @@ static void handle_event(struct imv *imv, SDL_Event *event) return; } else if (event->type == imv->events.BAD_IMAGE) { /* an image failed to load, remove it from our image list */ - char *err_path = event->user.data1; - imv_navigator_remove(imv->navigator, err_path); + const char *err_path = imv_navigator_selection(imv->navigator); /* special case: the image came from stdin */ if (strcmp(err_path, "-") == 0) { @@ -956,7 +956,8 @@ static void handle_event(struct imv *imv, SDL_Event *event) } fprintf(stderr, "Failed to load image from stdin.\n"); } - free(err_path); + + imv_navigator_remove(imv->navigator, err_path); } else if (event->type == imv->events.NEW_PATH) { /* received a new path from the stdin reading thread */ imv_add_path(imv, event->user.data1); |