Add SIGINT & SIGTERM signal support

reverse-branch
Martin Duquesnoy 18 years ago
parent a58943a633
commit 55c726b48c
  1. 12
      clock.c

@ -120,6 +120,7 @@ typedef struct
option_t option = { False, False, True };
geo_t geo = {1, 1, 33, 5}; /* Base position of the clock */
Bool fixcenter = False;
Bool running = True;
date_t sdate;
char *meridiem;
int temp_dp;
@ -151,6 +152,8 @@ start(void)
sig.sa_handler = handle_sig;
sig.sa_flags = 0;
sigaction(SIGWINCH, &sig, NULL);
sigaction(SIGTERM, &sig, NULL);
sigaction(SIGINT, &sig, NULL);
}
/* BIG NUMBER PRINTING FUNCTION */
@ -320,8 +323,7 @@ check_key(Bool keylock)
break;
case 'q':
case 'Q':
endwin();
exit(EXIT_SUCCESS);
raise(SIGTERM);
break;
}
}
@ -377,7 +379,7 @@ set_center(void)
fixcenter = !fixcenter;
}
/* SIGWINCH SIGNAL MANAGE FUNCTION */
/* SIGNAL HANDLE FUNCTION */
void
handle_sig(int num)
{
@ -388,6 +390,8 @@ handle_sig(int num)
fixcenter = !fixcenter;
set_center();
}
else if(num == SIGINT || num == SIGTERM)
running = False;
}
/* RUN FUCTION */
@ -447,7 +451,7 @@ main(int argc, char **argv)
start();
run();
for(;;)
while(running)
{
usleep(10000);
check_key(option.keylock);

Loading…
Cancel
Save