Loading src/filelist.c +36 −2 Original line number Diff line number Diff line Loading @@ -155,6 +155,40 @@ static void feh_print_stat_error(char *path) } } static void add_stdin_to_filelist() { char buf[1024]; size_t readsize; char *sfn = estrjoin("_", "/tmp/feh_stdin", "XXXXXX", NULL); int fd = mkstemp(sfn); FILE *outfile; if (fd == -1) { free(sfn); weprintf("cannot read from stdin: mktemp:"); return; } outfile = fdopen(fd, "w"); if (outfile == NULL) { free(sfn); weprintf("cannot read from stdin: fdopen:"); return; } while ((readsize = fread(buf, sizeof(char), sizeof(buf), stdin)) > 0) { if (fwrite(buf, sizeof(char), readsize, outfile) < readsize) { free(sfn); return; } } fclose(outfile); filelist = gib_list_add_front(filelist, feh_file_new(sfn)); free(sfn); } /* Recursive */ void add_file_to_filelist_recursively(char *origpath, unsigned char level) Loading Loading @@ -186,8 +220,8 @@ void add_file_to_filelist_recursively(char *origpath, unsigned char level) free(path); return; } else if ((len == 1) && (path[0] == '-')) { D(("Addig stdin (-) to filelist\n")); filelist = gib_list_add_front(filelist, feh_file_new(path)); D(("Adding temporary file for stdin (-) to filelist\n")); add_stdin_to_filelist(); free(path); return; } else if (opt.filelistfile) { Loading src/imlib.c +1 −38 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ int num_xinerama_screens; int childpid = 0; static char *feh_stdin_load_image(); static char *feh_http_load_image(char *url); static char *feh_magick_load_image(char *filename); Loading Loading @@ -210,7 +209,7 @@ void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) int feh_load_image(Imlib_Image * im, feh_file * file) { Imlib_Load_Error err; enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK, SRC_STDIN } image_source = enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK } image_source = SRC_IMLIB; char *tmpname = NULL; char *real_filename = NULL; Loading @@ -227,10 +226,6 @@ int feh_load_image(Imlib_Image * im, feh_file * file) tmpname = feh_http_load_image(file->filename); } if ((strlen(file->filename) == 1) && (file->filename[0] == '-')) { image_source = SRC_STDIN; tmpname = feh_stdin_load_image(); } else *im = imlib_load_image_with_error_return(file->filename, &err); Loading Loading @@ -275,38 +270,6 @@ int feh_load_image(Imlib_Image * im, feh_file * file) return(1); } static char *feh_stdin_load_image() { char buf[1024]; size_t readsize; char *sfn = estrjoin("_", "/tmp/feh_stdin", "XXXXXX", NULL); int fd = mkstemp(sfn); FILE *outfile; if (fd == -1) { free(sfn); return NULL; } outfile = fdopen(fd, "w"); if (outfile == NULL) { free(sfn); return NULL; } while ((readsize = fread(buf, sizeof(char), sizeof(buf), stdin)) > 0) { if (fwrite(buf, sizeof(char), readsize, outfile) < readsize) { free(sfn); return NULL; } } fclose(outfile); return sfn; } static char *feh_magick_load_image(char *filename) { char argv_fd[12]; Loading Loading
src/filelist.c +36 −2 Original line number Diff line number Diff line Loading @@ -155,6 +155,40 @@ static void feh_print_stat_error(char *path) } } static void add_stdin_to_filelist() { char buf[1024]; size_t readsize; char *sfn = estrjoin("_", "/tmp/feh_stdin", "XXXXXX", NULL); int fd = mkstemp(sfn); FILE *outfile; if (fd == -1) { free(sfn); weprintf("cannot read from stdin: mktemp:"); return; } outfile = fdopen(fd, "w"); if (outfile == NULL) { free(sfn); weprintf("cannot read from stdin: fdopen:"); return; } while ((readsize = fread(buf, sizeof(char), sizeof(buf), stdin)) > 0) { if (fwrite(buf, sizeof(char), readsize, outfile) < readsize) { free(sfn); return; } } fclose(outfile); filelist = gib_list_add_front(filelist, feh_file_new(sfn)); free(sfn); } /* Recursive */ void add_file_to_filelist_recursively(char *origpath, unsigned char level) Loading Loading @@ -186,8 +220,8 @@ void add_file_to_filelist_recursively(char *origpath, unsigned char level) free(path); return; } else if ((len == 1) && (path[0] == '-')) { D(("Addig stdin (-) to filelist\n")); filelist = gib_list_add_front(filelist, feh_file_new(path)); D(("Adding temporary file for stdin (-) to filelist\n")); add_stdin_to_filelist(); free(path); return; } else if (opt.filelistfile) { Loading
src/imlib.c +1 −38 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ int num_xinerama_screens; int childpid = 0; static char *feh_stdin_load_image(); static char *feh_http_load_image(char *url); static char *feh_magick_load_image(char *filename); Loading Loading @@ -210,7 +209,7 @@ void feh_imlib_print_load_error(char *file, winwidget w, Imlib_Load_Error err) int feh_load_image(Imlib_Image * im, feh_file * file) { Imlib_Load_Error err; enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK, SRC_STDIN } image_source = enum { SRC_IMLIB, SRC_HTTP, SRC_MAGICK } image_source = SRC_IMLIB; char *tmpname = NULL; char *real_filename = NULL; Loading @@ -227,10 +226,6 @@ int feh_load_image(Imlib_Image * im, feh_file * file) tmpname = feh_http_load_image(file->filename); } if ((strlen(file->filename) == 1) && (file->filename[0] == '-')) { image_source = SRC_STDIN; tmpname = feh_stdin_load_image(); } else *im = imlib_load_image_with_error_return(file->filename, &err); Loading Loading @@ -275,38 +270,6 @@ int feh_load_image(Imlib_Image * im, feh_file * file) return(1); } static char *feh_stdin_load_image() { char buf[1024]; size_t readsize; char *sfn = estrjoin("_", "/tmp/feh_stdin", "XXXXXX", NULL); int fd = mkstemp(sfn); FILE *outfile; if (fd == -1) { free(sfn); return NULL; } outfile = fdopen(fd, "w"); if (outfile == NULL) { free(sfn); return NULL; } while ((readsize = fread(buf, sizeof(char), sizeof(buf), stdin)) > 0) { if (fwrite(buf, sizeof(char), readsize, outfile) < readsize) { free(sfn); return NULL; } } fclose(outfile); return sfn; } static char *feh_magick_load_image(char *filename) { char argv_fd[12]; Loading