aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xz/signals.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/xz/signals.c b/src/xz/signals.c
index 66d65373..7e65b2a3 100644
--- a/src/xz/signals.c
+++ b/src/xz/signals.c
@@ -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;