summaryrefslogtreecommitdiff
path: root/src/httrack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/httrack.c')
-rw-r--r--src/httrack.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/httrack.c b/src/httrack.c
index d1f2f77..adc8ca6 100644
--- a/src/httrack.c
+++ b/src/httrack.c
@@ -772,11 +772,22 @@ static void sig_doback(int blind) { // mettre en backing
}
#endif
+static void sig_leave( int code ) {
+ signal(code, sig_term); // quitter si encore
+ printf("\n** Finishing pending transfers.. press again ^C to quit.\n");
+ if (global_opt != NULL) {
+ // ask for stop
+ global_opt->state.stop=1;
+ }
+}
+
static void signal_handlers(void) {
#ifdef _WIN32
#ifndef _WIN32_WCE
#if 0 /* BUG366763 */
signal( SIGINT , sig_ask ); // ^C
+#else
+ signal( SIGINT , sig_leave ); // ^C
#endif
signal( SIGTERM , sig_finish ); // kill <process>
#endif
@@ -788,6 +799,8 @@ static void signal_handlers(void) {
signal( SIGTERM , sig_finish ); // kill <process>
#if 0 /* BUG366763 */
signal( SIGINT , sig_ask ); // ^C
+#else
+ signal( SIGINT , sig_leave ); // ^C
#endif
signal( SIGPIPE , sig_brpipe ); // broken pipe (write into non-opened socket)
signal( SIGCHLD , sig_ignore ); // child change status