iMove to sigaction. Raise SIGWINCH on HUP for ncurses. - catpoint - Catpoint simple presenting software. Err bitreich.org 70
hgit clone git://bitreich.org/catpoint/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/catpoint/ URL:git://bitreich.org/catpoint/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/catpoint/ bitreich.org 70
1Log /scm/catpoint/log.gph bitreich.org 70
1Files /scm/catpoint/files.gph bitreich.org 70
1Refs /scm/catpoint/refs.gph bitreich.org 70
1Tags /scm/catpoint/tag bitreich.org 70
1README /scm/catpoint/file/README.md.gph bitreich.org 70
1LICENSE /scm/catpoint/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 0ebd046cc4dc1cfca5e7120fa2115354efb0a87f /scm/catpoint/commit/0ebd046cc4dc1cfca5e7120fa2115354efb0a87f.gph bitreich.org 70
1parent 6649dc02de2035e52c61b3e62cc543fd6bfdb1a7 /scm/catpoint/commit/6649dc02de2035e52c61b3e62cc543fd6bfdb1a7.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Sun, 20 Dec 2020 17:20:03 +0100 Err bitreich.org 70
i Err bitreich.org 70
iMove to sigaction. Raise SIGWINCH on HUP for ncurses. Err bitreich.org 70
i Err bitreich.org 70
iThanks Bob for the sigaction suggestion! Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M Makefile | 2 +- Err bitreich.org 70
i M catpoint.c | 23 +++++++++++++++++------ Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 18 insertions(+), 7 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/catpoint/file/Makefile.gph bitreich.org 70
i@@ -12,7 +12,7 @@ MANPREFIX = ${PREFIX}/share/man Err bitreich.org 70
i Err bitreich.org 70
i # use system flags. Err bitreich.org 70
i CATPOINT_CFLAGS = ${CFLAGS} Err bitreich.org 70
i-CATPOINT_CPPFLAGS = ${CPPFLAGS} Err bitreich.org 70
i+CATPOINT_CPPFLAGS = ${CPPFLAGS} -D_DEFAULT_SOURCE Err bitreich.org 70
i CATPOINT_LDFLAGS = ${LDFLAGS} -lncursesw Err bitreich.org 70
i # Gentoo Err bitreich.org 70
i #CATPOINT_LDFLAGS = ${LDFLAGS} -lncursesw -ltinfow Err bitreich.org 70
1diff --git a/catpoint.c b/catpoint.c /scm/catpoint/file/catpoint.c.gph bitreich.org 70
i@@ -61,18 +61,29 @@ reloadcurrentslide(int sig) Err bitreich.org 70
i { Err bitreich.org 70
i loadcurrentslide(slidefiles, currentslide); Err bitreich.org 70
i Err bitreich.org 70
i- if (sig == SIGHUP) Err bitreich.org 70
i- raise(SIGWINCH); /* Redisplay slide. */ Err bitreich.org 70
i+ if (sig == SIGHUP) { Err bitreich.org 70
i+ /* Make ncurses redisplay slide. */ Err bitreich.org 70
i+ if (raise(SIGWINCH) < 0) Err bitreich.org 70
i+ err(1, "raise"); Err bitreich.org 70
i+ } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i void Err bitreich.org 70
i setsignal() Err bitreich.org 70
i { Err bitreich.org 70
i- signal(SIGHUP, reloadcurrentslide); Err bitreich.org 70
i+ struct sigaction sa; Err bitreich.org 70
i+ Err bitreich.org 70
i+ memset(&sa, 0, sizeof(sa)); Err bitreich.org 70
i+ sigemptyset(&sa.sa_mask); Err bitreich.org 70
i+ sa.sa_flags = 0; Err bitreich.org 70
i+ Err bitreich.org 70
i+ sa.sa_handler = cleanup; Err bitreich.org 70
i+ sigaction(SIGINT, &sa, NULL); Err bitreich.org 70
i+ sigaction(SIGQUIT, &sa, NULL); Err bitreich.org 70
i+ sigaction(SIGTERM, &sa, NULL); Err bitreich.org 70
i Err bitreich.org 70
i- signal(SIGINT, cleanup); Err bitreich.org 70
i- signal(SIGQUIT, cleanup); Err bitreich.org 70
i- signal(SIGTERM, cleanup); Err bitreich.org 70
i+ sa.sa_handler = reloadcurrentslide; Err bitreich.org 70
i+ sigaction(SIGHUP, &sa, NULL); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i int Err bitreich.org 70
.
Response:
text/plain