Introduction
Introduction Statistics Contact Development Disclaimer Help
st-externalpipe-signal-0.8.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
st-externalpipe-signal-0.8.2.diff (1705B)
---
1 From df32a82e8a889629ed406ce468f24c35da7e9a03 Mon Sep 17 00:00:00 2001
2 From: Miles Alan <[email protected]>
3 Date: Sun, 11 Aug 2019 21:33:55 -0500
4 Subject: [PATCH] Add handler for SIGUSR1 signal to run an externalpipe c…
5
6 ---
7 config.def.h | 1 +
8 st.c | 14 ++++++++++++++
9 st.h | 1 +
10 3 files changed, 16 insertions(+)
11
12 diff --git a/config.def.h b/config.def.h
13 index 0e01717..96d1bdd 100644
14 --- a/config.def.h
15 +++ b/config.def.h
16 @@ -1,3 +1,4 @@
17 +char *externalpipe_sigusr1[] = {"/bin/sh", "-c", "externalpipe_buffer.s…
18 /* See LICENSE file for copyright and license details. */
19
20 /*
21 diff --git a/st.c b/st.c
22 index b8e6077..48cae2e 100644
23 --- a/st.c
24 +++ b/st.c
25 @@ -155,6 +155,7 @@ typedef struct {
26 static void execsh(char *, char **);
27 static void stty(char **);
28 static void sigchld(int);
29 +static void sigusr1(int);
30 static void ttywriteraw(const char *, size_t);
31
32 static void csidump(void);
33 @@ -719,6 +720,13 @@ execsh(char *cmd, char **args)
34 _exit(1);
35 }
36
37 +void
38 +sigusr1(int unused)
39 +{
40 + static Arg a = {.v = externalpipe_sigusr1};
41 + externalpipe(&a);
42 +}
43 +
44 void
45 sigchld(int a)
46 {
47 @@ -765,6 +773,12 @@ stty(char **args)
48 int
49 ttynew(char *line, char *cmd, char *out, char **args)
50 {
51 + static struct sigaction sa;
52 + sa.sa_handler = sigusr1;
53 + sigemptyset(&sa.sa_mask);
54 + sa.sa_flags = SA_RESTART;
55 + sigaction(SIGUSR1, &sa, NULL);
56 +
57 int m, s;
58
59 if (out) {
60 diff --git a/st.h b/st.h
61 index 38c61c4..794b4ff 100644
62 --- a/st.h
63 +++ b/st.h
64 @@ -111,6 +111,7 @@ void *xrealloc(void *, size_t);
65 char *xstrdup(char *);
66
67 /* config.h globals */
68 +extern char *externalpipe_sigusr1[];
69 extern char *utmp;
70 extern char *stty_args;
71 extern char *vtiden;
72 --
73 2.19.2
74
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.