radio: Correctly reset terminal on exit/error

This commit is contained in:
Andreas Eversberg
2024-10-16 19:29:06 +02:00
parent 8f91ed1f64
commit a2e7b38ed2

View File

@@ -421,7 +421,7 @@ int main(int argc, char *argv[])
rc = radio_start(&radio); rc = radio_start(&radio);
if (rc < 0) { if (rc < 0) {
fprintf(stderr, "Failed to start radio's streaming, exitting!\n"); fprintf(stderr, "Failed to start radio's streaming, exitting!\n");
goto error; goto error_start;
} }
int tosend, got; int tosend, got;
@@ -500,12 +500,18 @@ next_char:
} }
} }
error_start:
/* reset signals */ /* reset signals */
signal(SIGINT, SIG_DFL); signal(SIGINT, SIG_DFL);
signal(SIGHUP, SIG_DFL); signal(SIGHUP, SIG_DFL);
signal(SIGTERM, SIG_DFL); signal(SIGTERM, SIG_DFL);
signal(SIGPIPE, SIG_DFL); signal(SIGPIPE, SIG_DFL);
display_measurements_on(0);
display_spectrum_on(0);
display_wave_on(0);
display_iq_on(0);
/* reset terminal */ /* reset terminal */
tcsetattr(0, TCSANOW, &term_orig); tcsetattr(0, TCSANOW, &term_orig);