commit c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0
parent 4c41d363b761999a8af864b4e20218f0625d940f
Author: Charles Lehner <[email protected]>
Date: Sat, 9 Jan 2016 14:18:53 -0500
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 <[email protected]>
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/surf.c b/surf.c
@@ -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)
{