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); } |