Mercurial > hg
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 |