diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2021-01-24 05:44:17 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2021-01-25 17:45:47 +0100 | 
| commit | 9ba35b0c7f82d49158accba691964b3d26290cbd (patch) | |
| tree | 63d1e0d6e5bba4e8eb8085ce2327e5ad9a7bfa8f /src/filelist.c | |
| parent | 9353845a5f397a36440263800d9a70a80ab609ad (diff) | |
Handle URL-encoded components in "feh --start-at file://...."
Closes #584
Diffstat (limited to 'src/filelist.c')
| -rw-r--r-- | src/filelist.c | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/src/filelist.c b/src/filelist.c index ae8d7b2..9d8b38a 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -28,6 +28,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  #include <libexif/exif-data.h>  #endif +#ifdef HAVE_LIBCURL +#include <curl/curl.h> +#endif +  #include "feh.h"  #include "filelist.h"  #include "signals.h" @@ -678,3 +682,27 @@ void feh_save_filelist()  	free(tmpname);  	return;  } + +#ifdef HAVE_LIBCURL + +char *feh_http_unescape(char *url) +{ +	CURL *curl = curl_easy_init(); +	if (!curl) { +		return NULL; +	} +	char *tmp_url = curl_easy_unescape(curl, url, 0, NULL); +	char *new_url = estrdup(tmp_url); +	curl_free(tmp_url); +	curl_easy_cleanup(curl); +	return new_url; +} + +#else + +char *feh_http_unescape(char *url) +{ +	return NULL; +} + +#endif  | 
