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 .