diff options
author | Charles Lehner <cel@celehner.com> | 2016-01-09 14:18:53 -0500 |
---|---|---|
committer | Quentin Rameau <quinq@fifth.space> | 2016-07-08 15:02:42 +0200 |
commit | c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0 (patch) | |
tree | 62f17eb0914e7fceaf4be300190de43f1762a549 /surf.c | |
parent | 4c41d363b761999a8af864b4e20218f0625d940f (diff) | |
download | surf-c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0.tar.gz surf-c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0.tar.bz2 surf-c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0.zip |
Reload on SIGHUP
ratiueratuie rstiure tiurest aruite rautie rautier tiue rtaruit ratiuera
This patch makes surf reload its pages when it receives a SIGHUP signal.
This makes it easier for shell scripts to trigger surf to reload.
I'm aware of using xdotool to trigger ctrl+r keypresses for reloading
but I wasn't able to get that to work in a general way. [1]
I'm sending this here in case surf maintainers and users would like to
include this in core - if not I will submit it to the wiki.
Regards,
Charles
[1] http://surf.suckless.org/files/autorefresh
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Diffstat (limited to 'surf.c')
-rw-r--r-- | surf.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -145,6 +145,7 @@ static void usage(void); static void die(const char *errstr, ...); static void setup(void); static void sigchld(int unused); +static void sighup(int unused); static char *buildfile(const char *path); static char *buildpath(const char *path); static const char *getuserhomedir(const char *user); @@ -266,6 +267,9 @@ setup(void) /* clean up any zombies immediately */ sigchld(0); + if (signal(SIGHUP, sighup) == SIG_ERR) + die("Can't install SIGHUP handler"); + gtk_init(NULL, NULL); gdpy = gdk_display_get_default(); @@ -331,6 +335,16 @@ sigchld(int unused) ; } +void +sighup(int unused) +{ + Arg a = { .b = 0 }; + Client *c; + + for (c = clients; c; c = c->next) + reload(c, &a); +} + char * buildfile(const char *path) { |