From 310d50759ca8c7c34f12c58b07f912805a064397 Mon Sep 17 00:00:00 2001 From: Ignacio Losiggio Date: Thu, 23 Jan 2020 21:35:14 -0300 Subject: Ignore --start-at if the parameter is an URL --- src/options.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/options.c') diff --git a/src/options.c b/src/options.c index d3c1d52..aae10c2 100644 --- a/src/options.c +++ b/src/options.c @@ -843,7 +843,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) } } else if (finalrun && !opt.filelistfile && !opt.bgmode) { - if (opt.start_list_at && !path_is_url(opt.start_list_at) && strrchr(opt.start_list_at, '/')) { + if (opt.start_list_at && path_is_url(opt.start_list_at)) { + add_file_to_filelist_recursively(opt.start_list_at, FILELIST_FIRST); + } else if (opt.start_list_at && strrchr(opt.start_list_at, '/')) { char *target_directory = estrdup(opt.start_list_at); char *filename_start = strrchr(target_directory, '/'); if (filename_start) { -- cgit v1.2.3 From d2311c2332722ac0401e3441d9834c8b02491a82 Mon Sep 17 00:00:00 2001 From: Awal Garg Date: Mon, 30 Mar 2020 13:14:18 +0530 Subject: Enable re-using downloaded http cache --- src/imlib.c | 18 ++++++++++++++++-- src/options.c | 4 ++++ src/options.h | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'src/options.c') diff --git a/src/imlib.c b/src/imlib.c index b9f071a..1786876 100644 --- a/src/imlib.c +++ b/src/imlib.c @@ -258,10 +258,13 @@ int feh_load_image(Imlib_Image * im, feh_file * file) file->ed = exif_get_data(tmpname); #endif } - if ((image_source != SRC_HTTP) || !opt.keep_http) + if ((image_source != SRC_HTTP) || (!opt.keep_http && !opt.use_http_cache)) unlink(tmpname); + else if (opt.use_http_cache && !opt.keep_http) + add_file_to_rm_filelist(tmpname); - free(tmpname); + if (image_source != SRC_HTTP && !opt.use_http_cache) + free(tmpname); } if ((err) || (!im)) { @@ -542,6 +545,8 @@ static char *feh_magick_load_image(char *filename) #ifdef HAVE_LIBCURL +gib_hash* http_cache = NULL; + #if LIBCURL_VERSION_NUM >= 0x072000 /* 07.32.0 */ static int curl_quit_function(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) #else @@ -576,6 +581,13 @@ static char *feh_http_load_image(char *url) char *basename; char *path = NULL; + if (opt.use_http_cache) { + if (!http_cache) + http_cache = gib_hash_new(); + if ((sfn = gib_hash_get(http_cache, url)) != NULL) + return sfn; + } + if (opt.keep_http) { if (opt.output_dir) path = opt.output_dir; @@ -648,6 +660,8 @@ static char *feh_http_load_image(char *url) free(ebuff); fclose(sfp); + if (opt.use_http_cache) + gib_hash_set(http_cache, url, sfn); return sfn; } else { weprintf("open url: fdopen failed:"); diff --git a/src/options.c b/src/options.c index aae10c2..98b3eed 100644 --- a/src/options.c +++ b/src/options.c @@ -431,6 +431,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) {"auto-reload" , 0, 0, 248}, #endif {"class" , 1, 0, 249}, + {"use-http-cache", 0, 0, 250}, {0, 0, 0, 0} }; int optch = 0, cmdx = 0; @@ -827,6 +828,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 249: opt.x11_class = estrdup(optarg); break; + case 250: + opt.use_http_cache = 1; + break; default: break; } diff --git a/src/options.h b/src/options.h index 93474a9..74ef33f 100644 --- a/src/options.h +++ b/src/options.h @@ -49,6 +49,7 @@ struct __fehoptions { unsigned char aspect; unsigned char stretch; unsigned char keep_http; + unsigned char use_http_cache; unsigned char borderless; unsigned char randomize; unsigned char jump_on_resort; -- cgit v1.2.3 From a461f578e7122e1fe587892ed08ab1a364fe23b1 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 30 Mar 2020 19:23:11 +0200 Subject: Enable HTTP cache by default --- src/imlib.c | 1 + src/options.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/options.c') diff --git a/src/imlib.c b/src/imlib.c index 1786876..6d48394 100644 --- a/src/imlib.c +++ b/src/imlib.c @@ -545,6 +545,7 @@ static char *feh_magick_load_image(char *filename) #ifdef HAVE_LIBCURL +// TODO use cache for dcraw and magick conversion results as well gib_hash* http_cache = NULL; #if LIBCURL_VERSION_NUM >= 0x072000 /* 07.32.0 */ diff --git a/src/options.c b/src/options.c index 98b3eed..eb0fbe5 100644 --- a/src/options.c +++ b/src/options.c @@ -76,6 +76,7 @@ void init_parse_options(int argc, char **argv) #ifdef HAVE_INOTIFY opt.auto_reload = 1; #endif /* HAVE_INOTIFY */ + opt.use_http_cache = 1; feh_getopt_theme(argc, argv); @@ -431,7 +432,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) {"auto-reload" , 0, 0, 248}, #endif {"class" , 1, 0, 249}, - {"use-http-cache", 0, 0, 250}, + {"no-conversion-cache", 0, 0, 250}, {0, 0, 0, 0} }; int optch = 0, cmdx = 0; @@ -524,6 +525,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) break; case 'R': opt.reload = atof(optarg); + opt.use_http_cache = 0; #ifdef HAVE_INOTIFY opt.auto_reload = 0; #endif @@ -829,7 +831,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) opt.x11_class = estrdup(optarg); break; case 250: - opt.use_http_cache = 1; + opt.use_http_cache = 0; break; default: break; -- cgit v1.2.3