summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-11-18 20:22:14 +0100
committerDaniel Friesel <derf@finalrewind.org>2018-11-18 20:22:14 +0100
commit05ab8b3318c187c26205a6d5c0d7e6295d252b94 (patch)
tree42c38187539a50a2027e6482da53389f6d9720d1
parent60d3bcfdb3370730babe5e75ae8fbdaae9f09a35 (diff)
parentddf90e154a33a4e15054d962124f381eb3608fa2 (diff)
Merge branch 'Ferada-output-directory-for-image-saving'
-rw-r--r--man/feh.pre4
-rw-r--r--src/slideshow.c14
-rw-r--r--src/utils.c1
3 files changed, 15 insertions, 4 deletions
diff --git a/man/feh.pre b/man/feh.pre
index 7ff69cf..173410e 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -594,7 +594,9 @@ image.
.
Save files to
.Ar directory
-.Pq only useful with -k .
+when using
+.Cm --keep-http
+or the save_image command.
By default, files are saved in the current working directory.
.
.It Cm -p , --preload
diff --git a/src/slideshow.c b/src/slideshow.c
index b404318..145bee1 100644
--- a/src/slideshow.c
+++ b/src/slideshow.c
@@ -615,16 +615,24 @@ void slideshow_save_image(winwidget win)
{
char *tmpname;
Imlib_Load_Error err;
+ char *base_dir = "";
+ if (opt.output_dir) {
+ base_dir = estrjoin("", opt.output_dir, "/", NULL);
+ }
if (win->file) {
- tmpname = feh_unique_filename("", FEH_FILE(win->file->data)->name);
+ tmpname = feh_unique_filename(base_dir, FEH_FILE(win->file->data)->name);
} else if (mode) {
char *tmp;
tmp = estrjoin(".", mode, "png", NULL);
- tmpname = feh_unique_filename("", tmp);
+ tmpname = feh_unique_filename(base_dir, tmp);
free(tmp);
} else {
- tmpname = feh_unique_filename("", "noname.png");
+ tmpname = feh_unique_filename(base_dir, "noname.png");
+ }
+
+ if (opt.output_dir) {
+ free(base_dir);
}
if (opt.verbose)
diff --git a/src/utils.c b/src/utils.c
index ec30d4a..087e7f6 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -152,6 +152,7 @@ char path_is_url(char *path) {
return 0;
}
+/* Note: path must end with a trailing / or be an empty string */
/* free the result please */
char *feh_unique_filename(char *path, char *basename)
{