Move to sigaction. Raise SIGWINCH on HUP for ncurses.
Thanks Bob for the sigaction suggestion!
This commit is contained in:
parent
6649dc02de
commit
0ebd046cc4
2
Makefile
2
Makefile
@ -12,7 +12,7 @@ MANPREFIX = ${PREFIX}/share/man
|
||||
|
||||
# use system flags.
|
||||
CATPOINT_CFLAGS = ${CFLAGS}
|
||||
CATPOINT_CPPFLAGS = ${CPPFLAGS}
|
||||
CATPOINT_CPPFLAGS = ${CPPFLAGS} -D_DEFAULT_SOURCE
|
||||
CATPOINT_LDFLAGS = ${LDFLAGS} -lncursesw
|
||||
# Gentoo
|
||||
#CATPOINT_LDFLAGS = ${LDFLAGS} -lncursesw -ltinfow
|
||||
|
23
catpoint.c
23
catpoint.c
@ -61,18 +61,29 @@ reloadcurrentslide(int sig)
|
||||
{
|
||||
loadcurrentslide(slidefiles, currentslide);
|
||||
|
||||
if (sig == SIGHUP)
|
||||
raise(SIGWINCH); /* Redisplay slide. */
|
||||
if (sig == SIGHUP) {
|
||||
/* Make ncurses redisplay slide. */
|
||||
if (raise(SIGWINCH) < 0)
|
||||
err(1, "raise");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
setsignal()
|
||||
{
|
||||
signal(SIGHUP, reloadcurrentslide);
|
||||
struct sigaction sa;
|
||||
|
||||
signal(SIGINT, cleanup);
|
||||
signal(SIGQUIT, cleanup);
|
||||
signal(SIGTERM, cleanup);
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
|
||||
sa.sa_handler = cleanup;
|
||||
sigaction(SIGINT, &sa, NULL);
|
||||
sigaction(SIGQUIT, &sa, NULL);
|
||||
sigaction(SIGTERM, &sa, NULL);
|
||||
|
||||
sa.sa_handler = reloadcurrentslide;
|
||||
sigaction(SIGHUP, &sa, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
|
Loading…
Reference in New Issue
Block a user