summary refs log tree commit diff
path: root/bounce.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-10-11 18:32:11 -0400
committerJune McEnroe <june@causal.agency>2020-10-11 18:32:11 -0400
commitbe3aa8c9a8bb40cbbaefc2b91ebaee70fc64e4b1 (patch)
treedf5e8f26cdd687a61b835c806d5ef2481d2539d1 /bounce.c
parentFix possibliy uninitialized error (diff)
downloadpounce-be3aa8c9a8bb40cbbaefc2b91ebaee70fc64e4b1.tar.gz
pounce-be3aa8c9a8bb40cbbaefc2b91ebaee70fc64e4b1.zip
Handle signals before the main loop
This is a long-standing issue I ignored.
Diffstat (limited to '')
-rw-r--r--bounce.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/bounce.c b/bounce.c
index b2764e2..381e334 100644
--- a/bounce.c
+++ b/bounce.c
@@ -68,6 +68,9 @@ static volatile sig_atomic_t signals[NSIG];
 static void signalHandler(int signal) {
 	signals[signal] = 1;
 }
+static void justExit(int signal) {
+	exit(128 + signal);
+}
 
 static struct {
 	struct pollfd *fds;
@@ -350,6 +353,12 @@ int main(int argc, char *argv[]) {
 	if (error) err(EX_OSERR, "pledge");
 #endif
 
+	// Either exit with cleanup or ignore signals until entering the main loop.
+	signal(SIGINT, justExit);
+	signal(SIGTERM, justExit);
+	signal(SIGINFO, SIG_IGN);
+	signal(SIGUSR1, SIG_IGN);
+
 	ringAlloc(ringSize);
 	if (savePath) saveLoad(savePath);
 
/src/commit/files/code.map?id=1a496a45a64cee604868c6731d280ece8a65706b&follow=1'>Add Tarmak 2 to console keymapJune McEnroe 2017-07-04Remove pathogenJune McEnroe Apparently this is built in now. Except it loads from a weird path structure. 2017-07-04Consolidate pbd, pbcopy, pbpasteJune McEnroe 2017-07-04Reorganize neovim configuration, againJune McEnroe 2017-07-04Remove <Esc><Esc> terminal mappingJune McEnroe <C-w><Esc> works just as well. Convenient. 2017-07-04Generalize C-w neovim terminal mappingJune McEnroe 2017-07-04Remove tmuxJune McEnroe tmux configuration was starting to bother me, and it got worse with Sierra. Turns out that neovim terminal emulation is much more natural to work with and requires less configuration, though I still disapprove of the feature being included in an editor! For detaching and attaching sessions, abduco is a simple tool that seems to work decently, but given that I will likely only be running neovim in the sessions, I might come up with something even simpler. 2017-07-04Show terminal title in statuslineJune McEnroe 2017-07-04Add nvim terminal mappingsJune McEnroe 2017-06-29Add color to xxJune McEnroe 2017-06-28Set tmux copy-mode-vi bindings for TarmakJune McEnroe 2017-06-27Link Scala syntax fileJune McEnroe Oops. 2017-06-27Clean up top of trivial colorscheme fileJune McEnroe 2017-06-27Fix Scala syntax highlight linksJune McEnroe