comparison mcabber/src/main.c @ 389:6e895f397474

Ncurses changes + Ctrl-C does not send a signal anylore * Use nonl() when initializing ncurses * Ctrl-C does not send a signal in raw mode, so we handle it as a normal key
author Mikael Berthe <mikael@lilotux.net>
date Sat, 30 Jul 2005 10:36:46 +0100
parents bd5638c21834
children f8f3c7493457
comparison
equal deleted inserted replaced
388:f211238d5812 389:6e895f397474
112 //if (pid < 0) 112 //if (pid < 0)
113 // scr_LogPrint(LPRINT_LOGNORM, "Error in waitpid: errno=%d", errno); 113 // scr_LogPrint(LPRINT_LOGNORM, "Error in waitpid: errno=%d", errno);
114 signal(SIGCHLD, sig_handler); 114 signal(SIGCHLD, sig_handler);
115 } else if (signum == SIGTERM) { 115 } else if (signum == SIGTERM) {
116 mcabber_disconnect("Killed by SIGTERM"); 116 mcabber_disconnect("Killed by SIGTERM");
117 } else if (signum == SIGINT) { // Ctrl-C 117 } else if (signum == SIGINT) {
118 static time_t LastSigtermTime; 118 mcabber_disconnect("Killed by SIGINT");
119 time_t now;
120 time(&now);
121 /* Terminate if 2 consecutive SIGTERMs */
122 if (now - LastSigtermTime < 2)
123 mcabber_disconnect("Killed by SIGINT");
124 LastSigtermTime = now;
125 signal(SIGINT, sig_handler);
126 scr_handle_sigint();
127 scr_LogPrint(LPRINT_NORMAL, "Hit Ctrl-C twice to leave mcabber");
128 } else { 119 } else {
129 scr_LogPrint(LPRINT_LOGNORM, "Caught signal: %d", signum); 120 scr_LogPrint(LPRINT_LOGNORM, "Caught signal: %d", signum);
130 } 121 }
131 } 122 }
132 123