OS/2 and DOS: Be less verbose on signals.
authorLasse Collin <lasse.collin@tukaani.org>
Sat, 9 Oct 2010 18:51:03 +0000 (21:51 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sat, 9 Oct 2010 18:51:03 +0000 (21:51 +0300)
Calling raise() to kill xz when user has pressed C-c
is a bit verbose on OS/2 and DOS/DJGPP. Instead of
calling raise(), set only the exit status to 1.

src/xz/signals.c

index 66d6537..7e65b2a 100644 (file)
@@ -142,12 +142,19 @@ signals_exit(void)
        const int sig = exit_signal;
 
        if (sig != 0) {
+#ifdef TUKLIB_DOSLIKE
+               // Don't raise(), set only exit status. This avoids
+               // printing unwanted message about SIGINT when the user
+               // presses C-c.
+               set_exit_status(E_ERROR);
+#else
                struct sigaction sa;
                sa.sa_handler = SIG_DFL;
                sigfillset(&sa.sa_mask);
                sa.sa_flags = 0;
                sigaction(sig, &sa, NULL);
                raise(exit_signal);
+#endif
        }
 
        return;