diff options
| -rw-r--r-- | man/feh.pre | 4 | ||||
| -rw-r--r-- | src/slideshow.c | 14 | ||||
| -rw-r--r-- | src/utils.c | 1 | 
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)  { | 
