summaryrefslogtreecommitdiff
path: root/src/wallpaper.c
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2014-08-27 19:42:50 +0200
committerDaniel Friesel <derf@finalrewind.org>2014-08-27 19:42:50 +0200
commit3e284a9ac8959360278389cd537509a24f83c120 (patch)
tree94bab851e928d186746bcb322ba9a7161e320608 /src/wallpaper.c
parent2b04e7f4bd422c015edbc8de601b6aed951b3f71 (diff)
parent821a09969f5f51f0e3a7e35f6c4f35aeb9fe497a (diff)
Merge branch 'SirCmpwn-master'
Diffstat (limited to 'src/wallpaper.c')
-rw-r--r--src/wallpaper.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/wallpaper.c b/src/wallpaper.c
index 6e629dc..3e19c41 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/sh\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);
}