diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/wallpaper.c | 16 | 
1 files changed, 12 insertions, 4 deletions
| diff --git a/src/wallpaper.c b/src/wallpaper.c index 8660cde..b62d28b 100644 --- a/src/wallpaper.c +++ b/src/wallpaper.c @@ -258,17 +258,23 @@ void feh_wm_gen_bg_script(char* fil, int centered, int scaled, int filled, int u  	FILE *fp;  	int fd;  	char *path; -	char *exec_absolute_path; +	char *exec_method;  	char *absolute_path;  	struct stat s;  	gib_list *filelist_pos = filelist; -	exec_absolute_path = feh_absolute_path(cmdargv[0]); + +	if (strchr(cmdargv[0], '/')) +		exec_method = feh_absolute_path(cmdargv[0]); +	else +		exec_method = cmdargv[0]; +  	path = estrjoin("/", home, ".fehbg", NULL); +  	if ((fp = fopen(path, "w")) == NULL) {  		weprintf("Can't write to %s", path);  	} else {  		fputs("#!/bin/sh\n", fp); -		fputs(exec_absolute_path, fp); +		fputs(exec_method, fp);  		fputs(" --no-fehbg --bg-", fp);  		if (centered)  			fputs("center", fp); @@ -334,7 +340,9 @@ void feh_wm_gen_bg_script(char* fil, int centered, int scaled, int filled, int u  		fclose(fp);  	}  	free(path); -	free(exec_absolute_path); + +	if(exec_method != cmdargv[0]) +		free(exec_method);  }  void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, | 
