Loading src/feh.h +9 −1 Original line number Diff line number Diff line Loading @@ -115,6 +115,14 @@ enum slide_change { SLIDE_NEXT, SLIDE_PREV, SLIDE_RAND, SLIDE_FIRST, SLIDE_LAST, SLIDE_JUMP_PREV_DIR }; enum feh_load_error { LOAD_ERROR_IMLIB = 0, LOAD_ERROR_IMAGEMAGICK, LOAD_ERROR_CURL, LOAD_ERROR_DCRAW, LOAD_ERROR_MAGICBYTES }; #define INPLACE_EDIT_FLIP -1 #define INPLACE_EDIT_MIRROR -2 Loading Loading @@ -172,7 +180,7 @@ void feh_display_status(char stat); void real_loadables_mode(int loadable); void feh_reload_image(winwidget w, int resize, int force_new); void feh_filelist_image_remove(winwidget winwid, char do_delete); void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err); void feh_print_load_error(char *file, winwidget w, Imlib_Load_Error err, enum feh_load_error feh_err); void slideshow_save_image(winwidget win); void feh_edit_inplace(winwidget w, int orientation); void feh_edit_inplace_lossless(winwidget w, int orientation); Loading src/imlib.c +47 −23 Original line number Diff line number Diff line Loading @@ -164,11 +164,31 @@ int feh_load_image_char(Imlib_Image * im, char *filename) return(i); } void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) void feh_print_load_error(char *file, winwidget w, Imlib_Load_Error err, enum feh_load_error feh_err) { if (err == IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS) eprintf("%s - Out of file descriptors while loading", file); else if (!opt.quiet || w) { switch (feh_err) { case LOAD_ERROR_IMLIB: // handled in the next switch/case statement break; case LOAD_ERROR_IMAGEMAGICK: im_weprintf(w, "%s - No ImageMagick loader for that file format", file); break; case LOAD_ERROR_CURL: im_weprintf(w, "%s - libcurl was unable to retrieve the file", file); break; case LOAD_ERROR_DCRAW: im_weprintf(w, "%s - Unable to open preview via dcraw", file); break; case LOAD_ERROR_MAGICBYTES: im_weprintf(w, "%s - Does not look like an image (magic bytes missing)", file); break; } if (feh_err != LOAD_ERROR_IMLIB) { return; } switch (err) { case IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST: im_weprintf(w, "%s - File does not exist", file); Loading @@ -181,11 +201,7 @@ void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) break; case IMLIB_LOAD_ERROR_UNKNOWN: case IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT: if (getenv("FEH_SKIP_MAGIC")) { im_weprintf(w, "%s - No Imlib2 loader for that file format", file); } else { im_weprintf(w, "%s - Does not look like an image (magic bytes missing)", file); } break; case IMLIB_LOAD_ERROR_PATH_TOO_LONG: im_weprintf(w, "%s - Path specified is too long", file); Loading Loading @@ -316,6 +332,7 @@ int feh_is_image(feh_file * file) int feh_load_image(Imlib_Image * im, feh_file * file) { Imlib_Load_Error err = IMLIB_LOAD_ERROR_NONE; enum feh_load_error feh_err = LOAD_ERROR_IMLIB; enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK, SRC_DCRAW } image_source = SRC_IMLIB; char *tmpname = NULL; char *real_filename = NULL; Loading @@ -328,19 +345,16 @@ int feh_load_image(Imlib_Image * im, feh_file * file) if (path_is_url(file->filename)) { image_source = SRC_HTTP; if ((tmpname = feh_http_load_image(file->filename)) == NULL) if ((tmpname = feh_http_load_image(file->filename)) == NULL) { feh_err = LOAD_ERROR_CURL; err = IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST; } else if (opt.conversion_timeout >= 0 && feh_file_is_raw(file->filename)) { image_source = SRC_DCRAW; tmpname = feh_dcraw_load_image(file->filename); if (!tmpname) err = IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT; } else { if (feh_is_image(file)) { *im = imlib_load_image_with_error_return(file->filename, &err); } else { feh_err = LOAD_ERROR_MAGICBYTES; err = IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT; } } Loading @@ -348,8 +362,20 @@ int feh_load_image(Imlib_Image * im, feh_file * file) if (opt.conversion_timeout >= 0 && ( (err == IMLIB_LOAD_ERROR_UNKNOWN) || (err == IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT))) { if (feh_file_is_raw(file->filename)) { image_source = SRC_DCRAW; tmpname = feh_dcraw_load_image(file->filename); if (!tmpname) { feh_err = LOAD_ERROR_DCRAW; } } else { image_source = SRC_MAGICK; feh_err = LOAD_ERROR_IMLIB; tmpname = feh_magick_load_image(file->filename); if (!tmpname) { feh_err = LOAD_ERROR_IMAGEMAGICK; } } } if (tmpname) { Loading Loading @@ -409,7 +435,7 @@ int feh_load_image(Imlib_Image * im, feh_file * file) fputs("\n", stderr); reset_output = 1; } feh_imlib_print_load_error(file->filename, NULL, err); feh_print_load_error(file->filename, NULL, err, feh_err); D(("Load *failed*\n")); return(0); } Loading Loading @@ -549,11 +575,9 @@ static int feh_file_is_raw(char *filename) } if (childpid == 0) { if (opt.quiet) { int devnull = open("/dev/null", O_WRONLY); dup2(devnull, 1); dup2(devnull, 2); } execlp("dcraw", "dcraw", "-i", filename, NULL); _exit(1); } else { Loading Loading @@ -1537,8 +1561,8 @@ void feh_edit_inplace(winwidget w, int op) FEH_FILE(w->file->data)->filename, &err); gib_imlib_free_image(old); if (err) feh_imlib_print_load_error(FEH_FILE(w->file->data)->filename, w, err); feh_print_load_error(FEH_FILE(w->file->data)->filename, w, err, LOAD_ERROR_IMLIB); feh_reload_image(w, 1, 1); } else { /* Loading src/index.c +1 −1 Original line number Diff line number Diff line Loading @@ -332,7 +332,7 @@ void init_index_mode(void) gib_imlib_save_image_with_error_return(im_main, output_buf, &err); if (err) { feh_imlib_print_load_error(output_buf, im_main, err); feh_print_load_error(output_buf, im_main, err, LOAD_ERROR_IMLIB); } else if (opt.verbose) { int tw, th; Loading src/slideshow.c +1 −1 Original line number Diff line number Diff line Loading @@ -638,7 +638,7 @@ void slideshow_save_image(winwidget win) gib_imlib_save_image_with_error_return(win->im, tmpname, &err); if (err) feh_imlib_print_load_error(tmpname, win, err); feh_print_load_error(tmpname, win, err, LOAD_ERROR_IMLIB); free(tmpname); return; Loading src/thumbnail.c +1 −1 Original line number Diff line number Diff line Loading @@ -392,7 +392,7 @@ void init_thumbnail_mode(void) } gib_imlib_save_image_with_error_return(td.im_main, output_buf, &err); if (err) { feh_imlib_print_load_error(output_buf, td.im_main, err); feh_print_load_error(output_buf, td.im_main, err, LOAD_ERROR_IMLIB); } else if (opt.verbose) { int tw, th; Loading Loading
src/feh.h +9 −1 Original line number Diff line number Diff line Loading @@ -115,6 +115,14 @@ enum slide_change { SLIDE_NEXT, SLIDE_PREV, SLIDE_RAND, SLIDE_FIRST, SLIDE_LAST, SLIDE_JUMP_PREV_DIR }; enum feh_load_error { LOAD_ERROR_IMLIB = 0, LOAD_ERROR_IMAGEMAGICK, LOAD_ERROR_CURL, LOAD_ERROR_DCRAW, LOAD_ERROR_MAGICBYTES }; #define INPLACE_EDIT_FLIP -1 #define INPLACE_EDIT_MIRROR -2 Loading Loading @@ -172,7 +180,7 @@ void feh_display_status(char stat); void real_loadables_mode(int loadable); void feh_reload_image(winwidget w, int resize, int force_new); void feh_filelist_image_remove(winwidget winwid, char do_delete); void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err); void feh_print_load_error(char *file, winwidget w, Imlib_Load_Error err, enum feh_load_error feh_err); void slideshow_save_image(winwidget win); void feh_edit_inplace(winwidget w, int orientation); void feh_edit_inplace_lossless(winwidget w, int orientation); Loading
src/imlib.c +47 −23 Original line number Diff line number Diff line Loading @@ -164,11 +164,31 @@ int feh_load_image_char(Imlib_Image * im, char *filename) return(i); } void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) void feh_print_load_error(char *file, winwidget w, Imlib_Load_Error err, enum feh_load_error feh_err) { if (err == IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS) eprintf("%s - Out of file descriptors while loading", file); else if (!opt.quiet || w) { switch (feh_err) { case LOAD_ERROR_IMLIB: // handled in the next switch/case statement break; case LOAD_ERROR_IMAGEMAGICK: im_weprintf(w, "%s - No ImageMagick loader for that file format", file); break; case LOAD_ERROR_CURL: im_weprintf(w, "%s - libcurl was unable to retrieve the file", file); break; case LOAD_ERROR_DCRAW: im_weprintf(w, "%s - Unable to open preview via dcraw", file); break; case LOAD_ERROR_MAGICBYTES: im_weprintf(w, "%s - Does not look like an image (magic bytes missing)", file); break; } if (feh_err != LOAD_ERROR_IMLIB) { return; } switch (err) { case IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST: im_weprintf(w, "%s - File does not exist", file); Loading @@ -181,11 +201,7 @@ void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) break; case IMLIB_LOAD_ERROR_UNKNOWN: case IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT: if (getenv("FEH_SKIP_MAGIC")) { im_weprintf(w, "%s - No Imlib2 loader for that file format", file); } else { im_weprintf(w, "%s - Does not look like an image (magic bytes missing)", file); } break; case IMLIB_LOAD_ERROR_PATH_TOO_LONG: im_weprintf(w, "%s - Path specified is too long", file); Loading Loading @@ -316,6 +332,7 @@ int feh_is_image(feh_file * file) int feh_load_image(Imlib_Image * im, feh_file * file) { Imlib_Load_Error err = IMLIB_LOAD_ERROR_NONE; enum feh_load_error feh_err = LOAD_ERROR_IMLIB; enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK, SRC_DCRAW } image_source = SRC_IMLIB; char *tmpname = NULL; char *real_filename = NULL; Loading @@ -328,19 +345,16 @@ int feh_load_image(Imlib_Image * im, feh_file * file) if (path_is_url(file->filename)) { image_source = SRC_HTTP; if ((tmpname = feh_http_load_image(file->filename)) == NULL) if ((tmpname = feh_http_load_image(file->filename)) == NULL) { feh_err = LOAD_ERROR_CURL; err = IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST; } else if (opt.conversion_timeout >= 0 && feh_file_is_raw(file->filename)) { image_source = SRC_DCRAW; tmpname = feh_dcraw_load_image(file->filename); if (!tmpname) err = IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT; } else { if (feh_is_image(file)) { *im = imlib_load_image_with_error_return(file->filename, &err); } else { feh_err = LOAD_ERROR_MAGICBYTES; err = IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT; } } Loading @@ -348,8 +362,20 @@ int feh_load_image(Imlib_Image * im, feh_file * file) if (opt.conversion_timeout >= 0 && ( (err == IMLIB_LOAD_ERROR_UNKNOWN) || (err == IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT))) { if (feh_file_is_raw(file->filename)) { image_source = SRC_DCRAW; tmpname = feh_dcraw_load_image(file->filename); if (!tmpname) { feh_err = LOAD_ERROR_DCRAW; } } else { image_source = SRC_MAGICK; feh_err = LOAD_ERROR_IMLIB; tmpname = feh_magick_load_image(file->filename); if (!tmpname) { feh_err = LOAD_ERROR_IMAGEMAGICK; } } } if (tmpname) { Loading Loading @@ -409,7 +435,7 @@ int feh_load_image(Imlib_Image * im, feh_file * file) fputs("\n", stderr); reset_output = 1; } feh_imlib_print_load_error(file->filename, NULL, err); feh_print_load_error(file->filename, NULL, err, feh_err); D(("Load *failed*\n")); return(0); } Loading Loading @@ -549,11 +575,9 @@ static int feh_file_is_raw(char *filename) } if (childpid == 0) { if (opt.quiet) { int devnull = open("/dev/null", O_WRONLY); dup2(devnull, 1); dup2(devnull, 2); } execlp("dcraw", "dcraw", "-i", filename, NULL); _exit(1); } else { Loading Loading @@ -1537,8 +1561,8 @@ void feh_edit_inplace(winwidget w, int op) FEH_FILE(w->file->data)->filename, &err); gib_imlib_free_image(old); if (err) feh_imlib_print_load_error(FEH_FILE(w->file->data)->filename, w, err); feh_print_load_error(FEH_FILE(w->file->data)->filename, w, err, LOAD_ERROR_IMLIB); feh_reload_image(w, 1, 1); } else { /* Loading
src/index.c +1 −1 Original line number Diff line number Diff line Loading @@ -332,7 +332,7 @@ void init_index_mode(void) gib_imlib_save_image_with_error_return(im_main, output_buf, &err); if (err) { feh_imlib_print_load_error(output_buf, im_main, err); feh_print_load_error(output_buf, im_main, err, LOAD_ERROR_IMLIB); } else if (opt.verbose) { int tw, th; Loading
src/slideshow.c +1 −1 Original line number Diff line number Diff line Loading @@ -638,7 +638,7 @@ void slideshow_save_image(winwidget win) gib_imlib_save_image_with_error_return(win->im, tmpname, &err); if (err) feh_imlib_print_load_error(tmpname, win, err); feh_print_load_error(tmpname, win, err, LOAD_ERROR_IMLIB); free(tmpname); return; Loading
src/thumbnail.c +1 −1 Original line number Diff line number Diff line Loading @@ -392,7 +392,7 @@ void init_thumbnail_mode(void) } gib_imlib_save_image_with_error_return(td.im_main, output_buf, &err); if (err) { feh_imlib_print_load_error(output_buf, td.im_main, err); feh_print_load_error(output_buf, td.im_main, err, LOAD_ERROR_IMLIB); } else if (opt.verbose) { int tw, th; Loading