diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/wallpaper.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/src/wallpaper.c b/src/wallpaper.c index 6e629dc..61eb1c3 100644 --- a/src/wallpaper.c +++ b/src/wallpaper.c @@ -29,6 +29,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  #include "options.h"  #include "wallpaper.h"  #include <limits.h> +#include <sys/stat.h>  Window ipc_win = None;  Window my_ipc_win = None;  Atom ipc_atom = None; @@ -450,12 +451,17 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled,  			if (home) {  				FILE *fp;  				char *path; +				struct stat s;  				path = estrjoin("/", home, ".fehbg", NULL);  				if ((fp = fopen(path, "w")) == NULL) {  					weprintf("Can't write to %s", path);  				} else { -					fprintf(fp, "%s\n", fehbg); +					fprintf(fp, "#!/bin/bash\n%s\n", fehbg);  					fclose(fp); +					stat(path, &s); +					if (chmod(path, s.st_mode | S_IXUSR | S_IXGRP) != 0) { +						weprintf("Can't set %s as executable", path); +					}  				}  				free(path);  			} | 
