surf-externalpipe-signal-2.0.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
surf-externalpipe-signal-2.0.diff (1772B) | |
--- | |
1 From 84a41d036329c7599024b7cb0f613400d7484cec Mon Sep 17 00:00:00 2001 | |
2 From: Miles Alan <[email protected]> | |
3 Date: Sun, 11 Aug 2019 21:36:58 -0500 | |
4 Subject: [PATCH] Add handler for SIGUSR1 signal to run an externalpipe c… | |
5 | |
6 --- | |
7 config.def.h | 1 + | |
8 surf.c | 16 ++++++++++++++++ | |
9 2 files changed, 17 insertions(+) | |
10 | |
11 diff --git a/config.def.h b/config.def.h | |
12 index 6d3135e..a7363d9 100644 | |
13 --- a/config.def.h | |
14 +++ b/config.def.h | |
15 @@ -5,6 +5,7 @@ static char *scriptfile = "~/.surf/script.js"; | |
16 static char *styledir = "~/.surf/styles/"; | |
17 static char *cachedir = "~/.surf/cache/"; | |
18 static char *cookiefile = "~/.surf/cookies.txt"; | |
19 +static char *externalpipe_sigusr1[] = {"/bin/sh", "-c", "externalpipe_b… | |
20 | |
21 /* Webkit default features */ | |
22 static Parameter defconfig[ParameterLast] = { | |
23 diff --git a/surf.c b/surf.c | |
24 index 93a1629..0e402ca 100644 | |
25 --- a/surf.c | |
26 +++ b/surf.c | |
27 @@ -146,6 +146,7 @@ static void die(const char *errstr, ...); | |
28 static void setup(void); | |
29 static void sigchld(int unused); | |
30 static void sighup(int unused); | |
31 +static void sigusr1(int unused); | |
32 static char *buildfile(const char *path); | |
33 static char *buildpath(const char *path); | |
34 static const char *getuserhomedir(const char *user); | |
35 @@ -338,6 +339,15 @@ sigchld(int unused) | |
36 ; | |
37 } | |
38 | |
39 +void | |
40 +sigusr1(int unused) | |
41 +{ | |
42 + static Arg a = {.v = externalpipe_sigusr1}; | |
43 + Client *c; | |
44 + for (c = clients; c; c = c->next) | |
45 + externalpipe(c, &a); | |
46 +} | |
47 + | |
48 void | |
49 sighup(int unused) | |
50 { | |
51 @@ -1757,6 +1767,12 @@ main(int argc, char *argv[]) | |
52 c = newclient(NULL); | |
53 showview(NULL, c); | |
54 | |
55 + struct sigaction sa; | |
56 + sa.sa_handler = sigusr1; | |
57 + sigemptyset(&sa.sa_mask); | |
58 + sa.sa_flags = SA_RESTART; | |
59 + sigaction(SIGUSR1, &sa, NULL); | |
60 + | |
61 loaduri(c, &arg); | |
62 updatetitle(c); | |
63 | |
64 -- | |
65 2.19.2 | |
66 |