Restores terminal background colour on exit

NOTE: Standard output from Direwolf is not affected.
This commit is contained in:
Nate Morrison 2022-03-21 18:54:01 -07:00
parent fe6cba2b0d
commit bc07681df9
43 changed files with 170 additions and 9 deletions

View File

@ -221,6 +221,7 @@ int main (int argc, char *argv[])
if (num_clients < 1 || num_clients > MAX_CLIENTS) { if (num_clients < 1 || num_clients > MAX_CLIENTS) {
printf ("Specify up to %d TNCs on the command line.\n", MAX_CLIENTS); printf ("Specify up to %d TNCs on the command line.\n", MAX_CLIENTS);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -236,6 +237,7 @@ int main (int argc, char *argv[])
p = strtok (stemp, "="); p = strtok (stemp, "=");
if (p == NULL) { if (p == NULL) {
printf ("Internal error 1\n"); printf ("Internal error 1\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
strlcpy (hostname[j], "localhost", sizeof(hostname[j])); strlcpy (hostname[j], "localhost", sizeof(hostname[j]));
@ -243,6 +245,7 @@ int main (int argc, char *argv[])
p = strtok (NULL, "="); p = strtok (NULL, "=");
if (p == NULL) { if (p == NULL) {
printf ("Missing description after %s\n", port[j]); printf ("Missing description after %s\n", port[j]);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
strlcpy (description[j], p, sizeof(description[j])); strlcpy (description[j], p, sizeof(description[j]));
@ -291,6 +294,7 @@ int main (int argc, char *argv[])
} }
if (client_th[j] == NULL) { if (client_th[j] == NULL) {
printf ("Internal error: Could not create client thread %d.\n", j); printf ("Internal error: Could not create client thread %d.\n", j);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#else #else
@ -302,6 +306,7 @@ int main (int argc, char *argv[])
} }
if (e != 0) { if (e != 0) {
perror("Internal error: Could not create client thread."); perror("Internal error: Could not create client thread.");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -438,6 +443,7 @@ static void * client_thread_net (void *arg)
hostname[my_index], gai_strerror(err)); hostname[my_index], gai_strerror(err));
#endif #endif
freeaddrinfo(ai_head); freeaddrinfo(ai_head);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -536,6 +542,7 @@ static void * client_thread_net (void *arg)
printf("Client %d unable to connect to %s on %s (%s), port %s\n", printf("Client %d unable to connect to %s on %s (%s), port %s\n",
my_index, description[my_index], hostname[my_index], ipaddr_str, port[my_index] ); my_index, description[my_index], hostname[my_index], ipaddr_str, port[my_index] );
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -563,6 +570,7 @@ static void * client_thread_net (void *arg)
if (n != sizeof(mon_cmd)) { if (n != sizeof(mon_cmd)) {
printf ("Read error, client %d received %d command bytes. Terminating.\n", my_index, n); printf ("Read error, client %d received %d command bytes. Terminating.\n", my_index, n);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -577,6 +585,7 @@ static void * client_thread_net (void *arg)
if (n != mon_cmd.data_len) { if (n != mon_cmd.data_len) {
printf ("Read error, client %d received %d data bytes.\n", my_index, n); printf ("Read error, client %d received %d data bytes.\n", my_index, n);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -682,6 +691,7 @@ static void * client_thread_serial (void *arg)
if (fd == MYFDERROR) { if (fd == MYFDERROR) {
printf("Client %d unable to connect to %s on %s.\n", printf("Client %d unable to connect to %s on %s.\n",
my_index, description[my_index], port[my_index] ); my_index, description[my_index], port[my_index] );
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -732,6 +742,7 @@ static void * client_thread_serial (void *arg)
if (fd == MYFDERROR) { if (fd == MYFDERROR) {
printf("Client %d unable to connect to %s on %s.\n", printf("Client %d unable to connect to %s on %s.\n",
my_index, description[my_index], port[my_index] ); my_index, description[my_index], port[my_index] );
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -781,6 +792,7 @@ static void * client_thread_serial (void *arg)
if (! ReadFile (fd, &ch, 1, &n, NULL)) { if (! ReadFile (fd, &ch, 1, &n, NULL)) {
printf ("Read error on %s.\n", description[my_index]); printf ("Read error on %s.\n", description[my_index]);
CloseHandle (fd); CloseHandle (fd);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -790,6 +802,7 @@ static void * client_thread_serial (void *arg)
if ( ( n = read(fd, & ch, 1)) < 0) { if ( ( n = read(fd, & ch, 1)) < 0) {
printf ("Read error on %s.\n", description[my_index]); printf ("Read error on %s.\n", description[my_index]);
close (fd); close (fd);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif

View File

@ -56,6 +56,7 @@ static void usage()
dw_printf (" mycall is required because that is the callsign for \n"); dw_printf (" mycall is required because that is the callsign for \n");
dw_printf (" which the TNC will accept connections. \n"); dw_printf (" which the TNC will accept connections. \n");
dw_printf (" \n"); dw_printf (" \n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -192,6 +193,7 @@ int main (int argc, char *argv[])
if (agwlib_init (tnc_hostname, tnc_port, agwlib_G_ask_port_information) != 0) { if (agwlib_init (tnc_hostname, tnc_port, agwlib_G_ask_port_information) != 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Could not attach to network TNC %s:%s.\n", tnc_hostname, tnc_port); dw_printf ("Could not attach to network TNC %s:%s.\n", tnc_hostname, tnc_port);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }

View File

@ -314,6 +314,7 @@ int main (int argc, char *argv[])
if (decimate < 1 || decimate > 8) { if (decimate < 1 || decimate > 8) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Unreasonable value for -D.\n"); dw_printf ("Unreasonable value for -D.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
dw_printf ("Divide audio sample rate by %d\n", decimate); dw_printf ("Divide audio sample rate by %d\n", decimate);
@ -331,6 +332,7 @@ int main (int argc, char *argv[])
if (upsample < 1 || upsample > 4) { if (upsample < 1 || upsample > 4) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Unreasonable value for -U.\n"); dw_printf ("Unreasonable value for -U.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
dw_printf ("Multiply audio sample rate by %d\n", upsample); dw_printf ("Multiply audio sample rate by %d\n", upsample);
@ -344,6 +346,7 @@ int main (int argc, char *argv[])
if (my_audio_config.achan[0].fix_bits < RETRY_NONE || my_audio_config.achan[0].fix_bits >= RETRY_MAX) { if (my_audio_config.achan[0].fix_bits < RETRY_NONE || my_audio_config.achan[0].fix_bits >= RETRY_MAX) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Invalid Fix Bits level.\n"); dw_printf ("Invalid Fix Bits level.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -424,6 +427,7 @@ int main (int argc, char *argv[])
if (my_audio_config.achan[0].baud < MIN_BAUD || my_audio_config.achan[0].baud > MAX_BAUD) { if (my_audio_config.achan[0].baud < MIN_BAUD || my_audio_config.achan[0].baud > MAX_BAUD) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD); dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -547,6 +551,7 @@ int main (int argc, char *argv[])
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Couldn't open file for read: %s\n", argv[optind]); dw_printf ("Couldn't open file for read: %s\n", argv[optind]);
//perror ("more info?"); //perror ("more info?");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -561,6 +566,7 @@ int main (int argc, char *argv[])
if (strncmp(header.riff, "RIFF", 4) != 0 || strncmp(header.wave, "WAVE", 4) != 0) { if (strncmp(header.riff, "RIFF", 4) != 0 || strncmp(header.wave, "WAVE", 4) != 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("This is not a .WAV format file.\n"); dw_printf ("This is not a .WAV format file.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -574,11 +580,13 @@ int main (int argc, char *argv[])
if (strncmp(chunk.id, "fmt ", 4) != 0) { if (strncmp(chunk.id, "fmt ", 4) != 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("WAV file error: Found \"%4.4s\" where \"fmt \" was expected.\n", chunk.id); dw_printf ("WAV file error: Found \"%4.4s\" where \"fmt \" was expected.\n", chunk.id);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (chunk.datasize != 16 && chunk.datasize != 18) { if (chunk.datasize != 16 && chunk.datasize != 18) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("WAV file error: Need fmt chunk datasize of 16 or 18. Found %d.\n", chunk.datasize); dw_printf ("WAV file error: Need fmt chunk datasize of 16 or 18. Found %d.\n", chunk.datasize);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -589,24 +597,28 @@ int main (int argc, char *argv[])
if (strncmp(wav_data.data, "data", 4) != 0) { if (strncmp(wav_data.data, "data", 4) != 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("WAV file error: Found \"%4.4s\" where \"data\" was expected.\n", wav_data.data); dw_printf ("WAV file error: Found \"%4.4s\" where \"data\" was expected.\n", wav_data.data);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (format.wformattag != 1) { if (format.wformattag != 1) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Sorry, I only understand audio format 1 (PCM). This file has %d.\n", format.wformattag); dw_printf ("Sorry, I only understand audio format 1 (PCM). This file has %d.\n", format.wformattag);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
if (format.nchannels != 1 && format.nchannels != 2) { if (format.nchannels != 1 && format.nchannels != 2) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Sorry, I only understand 1 or 2 channels. This file has %d.\n", format.nchannels); dw_printf ("Sorry, I only understand 1 or 2 channels. This file has %d.\n", format.nchannels);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
if (format.wbitspersample != 8 && format.wbitspersample != 16) { if (format.wbitspersample != 8 && format.wbitspersample != 16) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Sorry, I only understand 8 or 16 bits per sample. This file has %d.\n", format.wbitspersample); dw_printf ("Sorry, I only understand 8 or 16 bits per sample. This file has %d.\n", format.wbitspersample);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -709,14 +721,17 @@ int main (int argc, char *argv[])
if (error_if_less_than != -1 && packets_decoded_total < error_if_less_than) { if (error_if_less_than != -1 && packets_decoded_total < error_if_less_than) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n * * * TEST FAILED: number decoded is less than %d * * * \n", error_if_less_than); dw_printf ("\n * * * TEST FAILED: number decoded is less than %d * * * \n", error_if_less_than);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
if (error_if_greater_than != -1 && packets_decoded_total > error_if_greater_than) { if (error_if_greater_than != -1 && packets_decoded_total > error_if_greater_than) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n * * * TEST FAILED: number decoded is greater than %d * * * \n", error_if_greater_than); dw_printf ("\n * * * TEST FAILED: number decoded is greater than %d * * * \n", error_if_greater_than);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }
@ -1008,6 +1023,7 @@ static void usage (void) {
dw_printf (" Try different combinations of options to compare decoding\n"); dw_printf (" Try different combinations of options to compare decoding\n");
dw_printf (" performance.\n"); dw_printf (" performance.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -1056,6 +1056,7 @@ int audio_get (int a)
if (res <= 0) { if (res <= 0) {
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
dw_printf ("\nEnd of file on stdin. Exiting.\n"); dw_printf ("\nEnd of file on stdin. Exiting.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }

View File

@ -1084,6 +1084,7 @@ int audio_get (int a)
if (res <= 0) { if (res <= 0) {
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
dw_printf ("\nEnd of file on stdin. Exiting.\n"); dw_printf ("\nEnd of file on stdin. Exiting.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }

View File

@ -890,6 +890,7 @@ int audio_get (int a)
if (res <= 0) { if (res <= 0) {
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
dw_printf ("\nEnd of file on stdin. Exiting.\n"); dw_printf ("\nEnd of file on stdin. Exiting.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }

View File

@ -929,6 +929,7 @@ int main ()
dw_printf ("\n----------\n\n"); dw_printf ("\n----------\n\n");
dw_printf ("\nSUCCESS!\n"); dw_printf ("\nSUCCESS!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} /* end main */ } /* end main */

View File

@ -685,6 +685,7 @@ int main (int argc, char *argv[])
if (argc != 2) { if (argc != 2) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Specify HID path on command line.\n"); dw_printf ("Specify HID path on command line.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -1833,6 +1833,7 @@ void config_init (char *fname, struct audio_s *p_audio_config,
#if __WIN32__ #if __WIN32__
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Config file line %d: Windows version of direwolf does not support HAMLIB.\n", line); dw_printf ("Config file line %d: Windows version of direwolf does not support HAMLIB.\n", line);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
#else #else
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
@ -1919,6 +1920,7 @@ void config_init (char *fname, struct audio_s *p_audio_config,
dw_printf ("You must rebuild direwolf with CM108 Audio Adapter GPIO PTT support.\n"); dw_printf ("You must rebuild direwolf with CM108 Audio Adapter GPIO PTT support.\n");
dw_printf ("See User Guide for details.\n"); dw_printf ("See User Guide for details.\n");
#endif #endif
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
#endif #endif
} }
@ -4219,6 +4221,7 @@ void config_init (char *fname, struct audio_s *p_audio_config,
} }
} }
//dw_printf ("DEBUG server=%s port=%d\n", p_igate_config->t2_server_name, p_igate_config->t2_server_port); //dw_printf ("DEBUG server=%s port=%d\n", p_igate_config->t2_server_name, p_igate_config->t2_server_port);
//dw_printf ("\e[0m\e\n\e[0J\e");
//exit (0); //exit (0);
} }

View File

@ -4805,6 +4805,7 @@ int main (int argc, char *argv[])
if (argc >= 2) { if (argc >= 2) {
if (freopen (argv[1], "r", stdin) == NULL) { if (freopen (argv[1], "r", stdin) == NULL) {
fprintf(stderr, "Can't open %s for read.\n", argv[1]); fprintf(stderr, "Can't open %s for read.\n", argv[1]);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(1); exit(1);
} }
} }

View File

@ -993,6 +993,7 @@ void demod_process_sample (int chan, int subchan, int sam)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Invalid combination of options. Exiting.\n"); dw_printf ("Invalid combination of options. Exiting.\n");
// Would probably work but haven't thought about it or tested yet. // Would probably work but haven't thought about it or tested yet.
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
else { else {

View File

@ -267,6 +267,7 @@ void demod_afsk_init (int samples_per_sec, int baud, int mark_freq,
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Invalid filter profile = %c\n", profile); dw_printf ("Invalid filter profile = %c\n", profile);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -352,6 +353,7 @@ void demod_afsk_init (int samples_per_sec, int baud, int mark_freq,
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -362,6 +364,7 @@ void demod_afsk_init (int samples_per_sec, int baud, int mark_freq,
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -374,6 +377,7 @@ void demod_afsk_init (int samples_per_sec, int baud, int mark_freq,
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -446,6 +446,7 @@ void demod_psk_init (enum modem_t modem_type, enum v26_e v26_alt, int samples_pe
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -455,6 +456,7 @@ void demod_psk_init (enum modem_t modem_type, enum v26_e v26_alt, int samples_pe
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -464,6 +466,7 @@ void demod_psk_init (enum modem_t modem_type, enum v26_e v26_alt, int samples_pe
dw_printf ("Decrease the audio sample rate or increase the baud rate or\n"); dw_printf ("Decrease the audio sample rate or increase the baud rate or\n");
dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n", dw_printf ("recompile the application with MAX_FILTER_SIZE larger than %d.\n",
MAX_FILTER_SIZE); MAX_FILTER_SIZE);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -737,6 +737,7 @@ int main (int argc, char *argv[])
regerror (e, &alias_re, message, sizeof(message)); regerror (e, &alias_re, message, sizeof(message));
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n%s\n\n", message); dw_printf ("\n%s\n\n", message);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -745,6 +746,7 @@ int main (int argc, char *argv[])
regerror (e, &wide_re, message, sizeof(message)); regerror (e, &wide_re, message, sizeof(message));
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n%s\n\n", message); dw_printf ("\n%s\n\n", message);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -444,6 +444,7 @@ int main (int argc, char *argv[])
if (B_opt < MIN_BAUD || B_opt > MAX_BAUD) { if (B_opt < MIN_BAUD || B_opt > MAX_BAUD) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable data baud rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD); dw_printf ("Use a more reasonable data baud rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -475,6 +476,7 @@ int main (int argc, char *argv[])
if (D_opt < 1 || D_opt > 8) { if (D_opt < 1 || D_opt > 8) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Crazy value for -D. \n"); dw_printf ("Crazy value for -D. \n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -485,6 +487,7 @@ int main (int argc, char *argv[])
if (U_opt < 1 || U_opt > 4) { if (U_opt < 1 || U_opt > 4) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Crazy value for -U. \n"); dw_printf ("Crazy value for -U. \n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -597,6 +600,7 @@ int main (int argc, char *argv[])
0xc2, 0xb0, 0xc2, 0xb0,
0xc3, 0xbc, 0xc3, 0x9f); 0xc3, 0xbc, 0xc3, 0x9f);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
break; break;
@ -615,6 +619,7 @@ int main (int argc, char *argv[])
symbols_init (); symbols_init ();
symbols_list (); symbols_list ();
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
break; break;
@ -831,6 +836,7 @@ int main (int argc, char *argv[])
if (strlen(l_opt_logdir) > 0 && strlen(L_opt_logfile) > 0) { if (strlen(l_opt_logdir) > 0 && strlen(L_opt_logfile) > 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Logging options -l and -L can't be used together. Pick one or the other.\n"); dw_printf ("Logging options -l and -L can't be used together. Pick one or the other.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit(1); exit(1);
} }
@ -870,6 +876,7 @@ int main (int argc, char *argv[])
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Pointless to continue without audio device.\n"); dw_printf ("Pointless to continue without audio device.\n");
SLEEP_SEC(5); SLEEP_SEC(5);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -926,6 +933,7 @@ int main (int argc, char *argv[])
} }
ptt_set (OCTYPE_PTT, chan, 0); ptt_set (OCTYPE_PTT, chan, 0);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }
@ -977,6 +985,7 @@ int main (int argc, char *argv[])
recv_init (&audio_config); recv_init (&audio_config);
recv_process (); recv_process ();
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }
@ -1412,7 +1421,7 @@ static BOOL cleanup_win (int ctrltype)
{ {
if (ctrltype == CTRL_C_EVENT || ctrltype == CTRL_CLOSE_EVENT) { if (ctrltype == CTRL_C_EVENT || ctrltype == CTRL_CLOSE_EVENT) {
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
dw_printf ("\nQRT\n"); dw_printf ("\nQRT\e[0m\e\n\e[0J\e");
log_term (); log_term ();
ptt_term (); ptt_term ();
waypoint_term (); waypoint_term ();
@ -1429,11 +1438,12 @@ static BOOL cleanup_win (int ctrltype)
static void cleanup_linux (int x) static void cleanup_linux (int x)
{ {
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
dw_printf ("\nQRT\n"); dw_printf ("\nQRT\e[0m\e\n\e[0J\e");
log_term (); log_term ();
ptt_term (); ptt_term ();
dwgps_term (); dwgps_term ();
SLEEP_SEC(1); SLEEP_SEC(1);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(0); exit(0);
} }
@ -1511,11 +1521,14 @@ static void usage (char **argv)
#if __WIN32__ #if __WIN32__
dw_printf ("Complete documentation can be found in the 'doc' folder\n"); dw_printf ("Complete documentation can be found in the 'doc' folder\n");
/* I don't know if win32 supports ANSI colour sequences. */
#else #else
// TODO: Could vary by platform and build options. // TODO: Could vary by platform and build options.
dw_printf ("Complete documentation can be found in /usr/local/share/doc/direwolf\n"); //dw_printf ("Complete documentation can be found in /usr/local/share/doc/direwolf\n");
//dw_printf ("\e[0m\e\n\e[0J\e"); /* This appears to break the last bit of colour, so it is commented out. */
#endif #endif
dw_printf ("or online at https://github.com/wb2osz/direwolf/tree/master/doc\n"); dw_printf ("or online at https://github.com/wb2osz/direwolf/tree/master/doc\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }

View File

@ -9,6 +9,7 @@
#endif #endif
#ifndef DIREWOLF_H #ifndef DIREWOLF_H
#define DIREWOLF_H 1 #define DIREWOLF_H 1
@ -316,5 +317,4 @@ size_t strlcat_debug(char *__restrict__ dst, const char *__restrict__ src, size_
#endif /* BSD or Apple */ #endif /* BSD or Apple */
#endif /* ifndef DIREWOLF_H */ #endif /* ifndef DIREWOLF_H */

View File

@ -135,6 +135,7 @@ void dlq_init (void)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_init: pthread_mutex_init err=%d", err); dw_printf ("dlq_init: pthread_mutex_init err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -153,6 +154,7 @@ void dlq_init (void)
if (wake_up_event == NULL) { if (wake_up_event == NULL) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_init: pthread_cond_init: can't create receive wake up event"); dw_printf ("dlq_init: pthread_cond_init: can't create receive wake up event");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -170,6 +172,7 @@ void dlq_init (void)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_init: pthread_cond_init err=%d", err); dw_printf ("dlq_init: pthread_cond_init err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -325,6 +328,7 @@ static void append_to_queue (struct dlq_item_s *pnew)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq append_to_queue: pthread_mutex_lock err=%d", err); dw_printf ("dlq append_to_queue: pthread_mutex_lock err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -352,6 +356,7 @@ static void append_to_queue (struct dlq_item_s *pnew)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq append_to_queue: pthread_mutex_unlock err=%d", err); dw_printf ("dlq append_to_queue: pthread_mutex_unlock err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -425,6 +430,7 @@ static void append_to_queue (struct dlq_item_s *pnew)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq append_to_queue: pthread_mutex_lock wu err=%d", err); dw_printf ("dlq append_to_queue: pthread_mutex_lock wu err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -433,6 +439,7 @@ static void append_to_queue (struct dlq_item_s *pnew)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq append_to_queue: pthread_cond_signal err=%d", err); dw_printf ("dlq append_to_queue: pthread_cond_signal err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -441,6 +448,7 @@ static void append_to_queue (struct dlq_item_s *pnew)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq append_to_queue: pthread_mutex_unlock wu err=%d", err); dw_printf ("dlq append_to_queue: pthread_mutex_unlock wu err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -991,6 +999,7 @@ int dlq_wait_while_empty (double timeout)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_wait_while_empty: pthread_mutex_lock wu err=%d", err); dw_printf ("dlq_wait_while_empty: pthread_mutex_lock wu err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -1016,6 +1025,7 @@ int dlq_wait_while_empty (double timeout)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_wait_while_empty: pthread_mutex_unlock wu err=%d", err); dw_printf ("dlq_wait_while_empty: pthread_mutex_unlock wu err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -1071,6 +1081,7 @@ struct dlq_item_s *dlq_remove (void)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_remove: pthread_mutex_lock err=%d", err); dw_printf ("dlq_remove: pthread_mutex_lock err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -1088,6 +1099,7 @@ struct dlq_item_s *dlq_remove (void)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("dlq_remove: pthread_mutex_unlock err=%d", err); dw_printf ("dlq_remove: pthread_mutex_unlock err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif

View File

@ -448,12 +448,14 @@ static void push_button (int chan, char button, int ms)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n * Time-out failed, otherwise OK *\n"); dw_printf ("\n * Time-out failed, otherwise OK *\n");
dw_printf ("\"%s\"\n", result); dw_printf ("\"%s\"\n", result);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
else { else {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n *** TEST FAILED ***\n"); dw_printf ("\n *** TEST FAILED ***\n");
dw_printf ("\"%s\"\n", result); dw_printf ("\"%s\"\n", result);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -584,6 +586,7 @@ int main ()
push_button (c, '?', 0); push_button (c, '?', 0);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} /* end main */ } /* end main */

View File

@ -507,6 +507,7 @@ int main (int argc, char *argv[])
break; break;
case DWFIX_NOT_INIT: case DWFIX_NOT_INIT:
dw_printf ("GPS Init failed.\n"); dw_printf ("GPS Init failed.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
case DWFIX_ERROR: case DWFIX_ERROR:
default: default:

View File

@ -815,6 +815,7 @@ int main (int argc, char *argv[])
break; break;
case DWFIX_NOT_INIT: case DWFIX_NOT_INIT:
dw_printf ("GPS Init failed.\n"); dw_printf ("GPS Init failed.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
case DWFIX_ERROR: case DWFIX_ERROR:
default: default:

View File

@ -935,6 +935,7 @@ int main (int argc, char *argv[])
if (errors > 0) { if (errors > 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Encode APRS test FAILED with %d errors.\n", errors); dw_printf ("Encode APRS test FAILED with %d errors.\n", errors);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -960,11 +961,13 @@ int main (int argc, char *argv[])
if (errors != 0) { if (errors != 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Encode APRS test FAILED with %d errors.\n", errors); dw_printf ("Encode APRS test FAILED with %d errors.\n", errors);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("Encode APRS test PASSED with no errors.\n"); dw_printf ("Encode APRS test PASSED with no errors.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);

View File

@ -194,6 +194,7 @@ void fx25_init ( int debug_level )
if (Tab[i].rs == NULL) { if (Tab[i].rs == NULL) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("FX.25 internal error: init_rs_char failed!\n"); dw_printf("FX.25 internal error: init_rs_char failed!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }

View File

@ -85,6 +85,7 @@ int main ()
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("****** Could not open %s ******\n", fname); dw_printf ("****** Could not open %s ******\n", fname);
dw_printf ("****** Did you generate the test files first? ******\n"); dw_printf ("****** Did you generate the test files first? ******\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -110,12 +111,14 @@ int main ()
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("***** FX25 unit test Success - all tests passed. *****\n"); dw_printf ("***** FX25 unit test Success - all tests passed. *****\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("***** FX25 unit test FAILED. Only %d/11 tests passed. *****\n", fx25_test_count); dw_printf ("***** FX25 unit test FAILED. Only %d/11 tests passed. *****\n", fx25_test_count);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} // end main } // end main
@ -480,4 +483,4 @@ static int my_unstuff (int chan, int subchan, int slice, unsigned char * restric
} // my_unstuff } // my_unstuff
// end fx25_rec.c // end fx25_rec.c

View File

@ -64,6 +64,7 @@ int main ()
for (int i = 100 + CTAG_MIN; i <= 100 + CTAG_MAX; i++) { for (int i = 100 + CTAG_MIN; i <= 100 + CTAG_MAX; i++) {
fx25_send_frame (0, preload, (int)sizeof(preload)-3, i); fx25_send_frame (0, preload, (int)sizeof(preload)-3, i);
} }
dw_printf ("\e[0m\e\n\e[0J\e");
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
} // end main } // end main
#endif #endif
@ -333,4 +334,4 @@ static int stuff_it (unsigned char *in, int ilen, unsigned char *out, int osize)
} // end stuff_it } // end stuff_it
// end fx25_send.c // end fx25_send.c

View File

@ -252,6 +252,7 @@ int main(int argc, char **argv)
if (modem.achan[0].baud < MIN_BAUD || modem.achan[0].baud > MAX_BAUD) { if (modem.achan[0].baud < MIN_BAUD || modem.achan[0].baud > MAX_BAUD) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD); dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -272,6 +273,7 @@ int main(int argc, char **argv)
if (modem.achan[0].baud != 100 && (modem.achan[0].baud < MIN_BAUD || modem.achan[0].baud > MAX_BAUD)) { if (modem.achan[0].baud != 100 && (modem.achan[0].baud < MIN_BAUD || modem.achan[0].baud > MAX_BAUD)) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD); dw_printf ("Use a more reasonable bit rate in range of %d - %d.\n", MIN_BAUD, MAX_BAUD);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -343,6 +345,7 @@ int main(int argc, char **argv)
if (modem.achan[0].mark_freq < 300 || modem.achan[0].mark_freq > 3000) { if (modem.achan[0].mark_freq < 300 || modem.achan[0].mark_freq > 3000) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable value in range of 300 - 3000.\n"); dw_printf ("Use a more reasonable value in range of 300 - 3000.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -355,6 +358,7 @@ int main(int argc, char **argv)
if (modem.achan[0].space_freq < 300 || modem.achan[0].space_freq > 3000) { if (modem.achan[0].space_freq < 300 || modem.achan[0].space_freq > 3000) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable value in range of 300 - 3000.\n"); dw_printf ("Use a more reasonable value in range of 300 - 3000.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -379,6 +383,7 @@ int main(int argc, char **argv)
if (amplitude < 0 || amplitude > 200) { if (amplitude < 0 || amplitude > 200) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Amplitude must be in range of 0 to 200.\n"); dw_printf ("Amplitude must be in range of 0 to 200.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -392,6 +397,7 @@ int main(int argc, char **argv)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable audio sample rate in range of %d - %d.\n", dw_printf ("Use a more reasonable audio sample rate in range of %d - %d.\n",
MIN_SAMPLES_PER_SEC, MAX_SAMPLES_PER_SEC); MIN_SAMPLES_PER_SEC, MAX_SAMPLES_PER_SEC);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -410,6 +416,7 @@ int main(int argc, char **argv)
if (leading_zeros < 8 || leading_zeros > 12000) { if (leading_zeros < 8 || leading_zeros > 12000) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Use a more reasonable value.\n"); dw_printf ("Use a more reasonable value.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -447,6 +454,7 @@ int main(int argc, char **argv)
if (g_morse_wpm < 5 || g_morse_wpm > 50) { if (g_morse_wpm < 5 || g_morse_wpm > 50) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Morse code speed must be in range of 5 to 50 WPM.\n"); dw_printf ("Morse code speed must be in range of 5 to 50 WPM.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
break; break;
@ -504,6 +512,7 @@ int main(int argc, char **argv)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("ERROR: Either -j or -J must be specified when using 2400 bps QPSK.\n"); dw_printf ("ERROR: Either -j or -J must be specified when using 2400 bps QPSK.\n");
usage (argv); usage (argv);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -515,6 +524,7 @@ int main(int argc, char **argv)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("ERROR: The -o output file option must be specified.\n"); dw_printf ("ERROR: The -o output file option must be specified.\n");
usage (argv); usage (argv);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -524,6 +534,7 @@ int main(int argc, char **argv)
if (err < 0) { if (err < 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("ERROR - Can't open output file.\n"); dw_printf ("ERROR - Can't open output file.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -571,6 +582,7 @@ int main(int argc, char **argv)
if (input_fp == NULL) { if (input_fp == NULL) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Can't open %s for read.\n", argv[optind]); dw_printf ("Can't open %s for read.\n", argv[optind]);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set(DW_COLOR_INFO); text_color_set(DW_COLOR_INFO);
@ -706,6 +718,7 @@ static void usage (char **argv)
dw_printf ("\n"); dw_printf ("\n");
dw_printf (" Read message from stdin and put quarter volume sound into the file x.wav.\n"); dw_printf (" Read message from stdin and put quarter volume sound into the file x.wav.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }

View File

@ -418,6 +418,7 @@ void tone_gen_put_bit (int chan, int dat)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("INTERNAL ERROR: %s %d achan[%d].modem_type = %d\n", dw_printf ("INTERNAL ERROR: %s %d achan[%d].modem_type = %d\n",
__FILE__, __LINE__, chan, save_audio_config_p->achan[chan].modem_type); __FILE__, __LINE__, chan, save_audio_config_p->achan[chan].modem_type);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }

View File

@ -837,6 +837,7 @@ static void * connnect_thread (void *arg)
} }
} }
dw_printf ("\e[0m\e\n\e[0J\e");
exit(0); // Unreachable but stops compiler from complaining exit(0); // Unreachable but stops compiler from complaining
// about function not returning a value. // about function not returning a value.
} /* end connnect_thread */ } /* end connnect_thread */

View File

@ -987,6 +987,7 @@ int main ()
assert (memcmp(din, dout, 512) == 0); assert (memcmp(din, dout, 512) == 0);
dw_printf ("Quick KISS test passed OK.\n"); dw_printf ("Quick KISS test passed OK.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }

View File

@ -269,12 +269,14 @@ int main (int argc, char *argv[])
if ( ! S_ISDIR(s.st_mode)) { if ( ! S_ISDIR(s.st_mode)) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Receive queue location, %s, is not a directory.\n", receive_output); dw_printf ("Receive queue location, %s, is not a directory.\n", receive_output);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
} }
else { else {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Receive queue location, %s, does not exist.\n", receive_output); dw_printf ("Receive queue location, %s, does not exist.\n", receive_output);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
} }
@ -293,6 +295,7 @@ int main (int argc, char *argv[])
} }
if (tnc_th == NULL) { if (tnc_th == NULL) {
printf ("Internal error: Could not create TNC listen thread.\n"); printf ("Internal error: Could not create TNC listen thread.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
#else #else
@ -304,6 +307,7 @@ int main (int argc, char *argv[])
} }
if (e != 0) { if (e != 0) {
perror("Internal error: Could not create TNC listen thread."); perror("Internal error: Could not create TNC listen thread.");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
#endif #endif
@ -362,6 +366,7 @@ int main (int argc, char *argv[])
else { else {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf("Can't access transmit queue directory %s. Quitting.\n", transmit_from); dw_printf("Can't access transmit queue directory %s. Quitting.\n", transmit_from);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
SLEEP_SEC (1); SLEEP_SEC (1);
@ -625,6 +630,7 @@ static THREAD_F tnc_listen_net (void *arg)
if (err < 0) { if (err < 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Network interface failure. Can't go on.\n"); dw_printf ("Network interface failure. Can't go on.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -639,6 +645,7 @@ static THREAD_F tnc_listen_net (void *arg)
if (server_sock == -1) { if (server_sock == -1) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
// Should have been a message already. What else is there to say? // Should have been a message already. What else is there to say?
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -669,6 +676,7 @@ static THREAD_F tnc_listen_net (void *arg)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Read error from TCP KISS TNC. Terminating.\n"); dw_printf ("Read error from TCP KISS TNC. Terminating.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} /* end tnc_listen_net */ } /* end tnc_listen_net */
@ -707,6 +715,7 @@ static THREAD_F tnc_listen_serial (void *arg)
// More detail such as "permission denied" or "no such device" // More detail such as "permission denied" or "no such device"
dw_printf("%s\n", strerror(errno)); dw_printf("%s\n", strerror(errno));
#endif #endif
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -720,6 +729,7 @@ static THREAD_F tnc_listen_serial (void *arg)
if (ch < 0) { if (ch < 0) {
dw_printf("Read error from serial port KISS TNC.\n"); dw_printf("Read error from serial port KISS TNC.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -919,6 +929,7 @@ static void usage(void)
dw_printf (" -o Receive output queue directory. Store received frames here.\n"); dw_printf (" -o Receive output queue directory. Store received frames here.\n");
dw_printf (" -T Precede received frames with 'strftime' format time stamp.\n"); dw_printf (" -T Precede received frames with 'strftime' format time stamp.\n");
usage2(); usage2();
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }

View File

@ -1032,10 +1032,12 @@ int main (int argc, char *argv[])
if (errors > 0) { if (errors > 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("\nLocation Coordinate Conversion Test - FAILED!\n"); dw_printf ("\nLocation Coordinate Conversion Test - FAILED!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("\nLocation Coordinate Conversion Test - SUCCESS!\n"); dw_printf ("\nLocation Coordinate Conversion Test - SUCCESS!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }
@ -1045,4 +1047,4 @@ int main (int argc, char *argv[])
#endif #endif
/* end latlong.c */ /* end latlong.c */

View File

@ -94,6 +94,7 @@ int main (int argc, char *argv[])
fprintf (stderr, "Conversion to USNG failed:\n%s\n", message); fprintf (stderr, "Conversion to USNG failed:\n%s\n", message);
} }
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }
@ -112,5 +113,6 @@ static void usage (void)
fprintf (stderr, "Example:\n"); fprintf (stderr, "Example:\n");
fprintf (stderr, "\tll2utm 42.662139 -71.365553\n"); fprintf (stderr, "\tll2utm 42.662139 -71.365553\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -94,6 +94,7 @@ int main (int argc, char *argv[])
} }
else { else {
fprintf (stderr, "Can't open %s for read.\n", argv[n]); fprintf (stderr, "Can't open %s for read.\n", argv[n]);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -102,6 +103,7 @@ int main (int argc, char *argv[])
if (num_things == 0) { if (num_things == 0) {
fprintf (stderr, "Nothing to process.\n"); fprintf (stderr, "Nothing to process.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -146,6 +148,7 @@ int main (int argc, char *argv[])
*/ */
printf ("</gpx>\n"); printf ("</gpx>\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }

View File

@ -256,6 +256,7 @@ void multi_modem_process_sample (int chan, int audio_sample)
save_audio_config_p->achan[chan].num_subchan, MAX_SUBCHANS, save_audio_config_p->achan[chan].num_subchan, MAX_SUBCHANS,
save_audio_config_p->achan[chan].num_slicers, MAX_SLICERS); save_audio_config_p->achan[chan].num_slicers, MAX_SLICERS);
dw_printf ("Please report this message and include a copy of your configuration file.\n"); dw_printf ("Please report this message and include a copy of your configuration file.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }

View File

@ -1737,10 +1737,12 @@ int main ()
if (error_count > 0) { if (error_count > 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("\nPacket Filtering Test - FAILED!\n"); dw_printf ("\nPacket Filtering Test - FAILED!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("\nPacket Filtering Test - SUCCESS!\n"); dw_printf ("\nPacket Filtering Test - SUCCESS!\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }

View File

@ -257,6 +257,7 @@ static void get_access_to_gpio (const char *path)
dw_printf ("Can't get properties of %s.\n", path); dw_printf ("Can't get properties of %s.\n", path);
dw_printf ("This system is not configured with the GPIO user interface.\n"); dw_printf ("This system is not configured with the GPIO user interface.\n");
dw_printf ("Use a different method for PTT control.\n"); dw_printf ("Use a different method for PTT control.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -376,6 +377,7 @@ static void get_access_to_gpio (const char *path)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("This system is not configured with the GPIO user interface.\n"); dw_printf ("This system is not configured with the GPIO user interface.\n");
dw_printf ("Use a different method for PTT control.\n"); dw_printf ("Use a different method for PTT control.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -390,6 +392,7 @@ static void get_access_to_gpio (const char *path)
dw_printf (" 3. Configure your user id for sudo without a password.\n"); dw_printf (" 3. Configure your user id for sudo without a password.\n");
dw_printf ("\n"); dw_printf ("\n");
dw_printf ("Read the documentation and try -doo command line option for debugging details.\n"); dw_printf ("Read the documentation and try -doo command line option for debugging details.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -452,6 +455,7 @@ void export_gpio(int ch, int ot, int invert, int direction)
// Not expected. Above should have obtained permission or exited. // Not expected. Above should have obtained permission or exited.
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Permissions do not allow access to GPIO.\n"); dw_printf ("Permissions do not allow access to GPIO.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -464,6 +468,7 @@ void export_gpio(int ch, int ot, int invert, int direction)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Error writing \"%s\" to %s, errno=%d\n", stemp, gpio_export_path, e); dw_printf ("Error writing \"%s\" to %s, errno=%d\n", stemp, gpio_export_path, e);
dw_printf ("%s\n", strerror(e)); dw_printf ("%s\n", strerror(e));
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -574,6 +579,7 @@ void export_gpio(int ch, int ot, int invert, int direction)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("ERROR! Could not find Path for gpio number %d.n", gpio_num); dw_printf ("ERROR! Could not find Path for gpio number %d.n", gpio_num);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -590,6 +596,7 @@ void export_gpio(int ch, int ot, int invert, int direction)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Error opening %s\n", stemp); dw_printf ("Error opening %s\n", stemp);
dw_printf ("%s\n", strerror(e)); dw_printf ("%s\n", strerror(e));
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -610,6 +617,7 @@ void export_gpio(int ch, int ot, int invert, int direction)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Error writing initial state to %s\n", stemp); dw_printf ("Error writing initial state to %s\n", stemp);
dw_printf ("%s\n", strerror(e)); dw_printf ("%s\n", strerror(e));
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
close (fd); close (fd);

View File

@ -165,6 +165,7 @@ void recv_init (struct audio_s *pa)
if (xmit_th[a] == NULL) { if (xmit_th[a] == NULL) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("FATAL: Could not create audio receive thread for device %d.\n", a); dw_printf ("FATAL: Could not create audio receive thread for device %d.\n", a);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(1); exit(1);
} }
#else #else
@ -174,6 +175,7 @@ void recv_init (struct audio_s *pa)
if (e != 0) { if (e != 0) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("FATAL: Could not create audio receive thread for device %d.\n", a); dw_printf ("FATAL: Could not create audio receive thread for device %d.\n", a);
dw_printf ("\e[0m\e\n\e[0J\e");
exit(1); exit(1);
} }
#endif #endif
@ -278,6 +280,7 @@ static void * recv_adev_thread (void *arg)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("Terminating after audio input failure.\n"); dw_printf ("Terminating after audio input failure.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -1377,11 +1377,13 @@ int main ( )
if (errors != 0) { if (errors != 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("\nTEST FAILED with %d errors.\n", errors); dw_printf ("\nTEST FAILED with %d errors.\n", errors);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("\nTEST WAS SUCCESSFUL.\n"); dw_printf ("\nTEST WAS SUCCESSFUL.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }

View File

@ -155,6 +155,7 @@ void tq_init (struct audio_s *audio_config_p)
if (wake_up_event[c] == NULL) { if (wake_up_event[c] == NULL) {
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("tq_init: CreateEvent: can't create transmit wake up event, c=%d", c); dw_printf ("tq_init: CreateEvent: can't create transmit wake up event, c=%d", c);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -173,6 +174,7 @@ void tq_init (struct audio_s *audio_config_p)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("tq_init: pthread_cond_init c=%d err=%d", c, err); dw_printf ("tq_init: pthread_cond_init c=%d err=%d", c, err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -333,6 +335,7 @@ void tq_append (int chan, int prio, packet_t pp)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("tq_append: pthread_cond_signal err=%d", err); dw_printf ("tq_append: pthread_cond_signal err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -526,6 +529,7 @@ void lm_data_request (int chan, int prio, packet_t pp)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("lm_data_request: pthread_cond_signal err=%d", err); dw_printf ("lm_data_request: pthread_cond_signal err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -673,6 +677,7 @@ void lm_seize_request (int chan)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("lm_seize_request: pthread_cond_signal err=%d", err); dw_printf ("lm_seize_request: pthread_cond_signal err=%d", err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -763,6 +768,7 @@ void tq_wait_while_empty (int chan)
text_color_set(DW_COLOR_ERROR); text_color_set(DW_COLOR_ERROR);
dw_printf ("tq_wait_while_empty (%d): pthread_cond_wait err=%d", chan, err); dw_printf ("tq_wait_while_empty (%d): pthread_cond_wait err=%d", chan, err);
perror (""); perror ("");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -1600,6 +1600,7 @@ int main (int argc, char *argv[])
if (argc < 2) { if (argc < 2) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Supply text string on command line.\n"); dw_printf ("Supply text string on command line.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -1667,6 +1668,7 @@ int main (int argc, char *argv[])
if (argc < 2) { if (argc < 2) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Supply button sequence on command line.\n"); dw_printf ("Supply button sequence on command line.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -1812,11 +1814,13 @@ int main (int argc, char *argv[])
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("\nERROR: %d tests failed.\n", error_count); dw_printf ("\nERROR: %d tests failed.\n", error_count);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("\nSUCCESS! All tests passed.\n"); dw_printf ("\nSUCCESS! All tests passed.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);

View File

@ -127,6 +127,7 @@ int main (int argc, char *argv[])
if (server_sock == -1) { if (server_sock == -1) {
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -154,6 +155,7 @@ int main (int argc, char *argv[])
if (n != sizeof(mon_cmd)) { if (n != sizeof(mon_cmd)) {
printf ("Read error, received %d command bytes.\n", n); printf ("Read error, received %d command bytes.\n", n);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
@ -164,6 +166,7 @@ int main (int argc, char *argv[])
if (n != mon_cmd.data_len) { if (n != mon_cmd.data_len) {
printf ("Read error, client received %d data bytes when %d expected. Terminating.\n", n, mon_cmd.data_len); printf ("Read error, client received %d data bytes when %d expected. Terminating.\n", n, mon_cmd.data_len);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
} }
@ -364,12 +367,14 @@ static int connect_to_server (char *hostname, char *port)
err = WSAStartup (MAKEWORD(2,2), &wsadata); err = WSAStartup (MAKEWORD(2,2), &wsadata);
if (err != 0) { if (err != 0) {
printf("WSAStartup failed: %d\n", err); printf("WSAStartup failed: %d\n", err);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) { if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) {
printf("Could not find a usable version of Winsock.dll\n"); printf("Could not find a usable version of Winsock.dll\n");
WSACleanup(); WSACleanup();
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }
#endif #endif
@ -394,6 +399,7 @@ static int connect_to_server (char *hostname, char *port)
printf ("Can't get address for server %s, %s\n", hostname, gai_strerror(err)); printf ("Can't get address for server %s, %s\n", hostname, gai_strerror(err));
#endif #endif
freeaddrinfo(ai_head); freeaddrinfo(ai_head);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -115,6 +115,7 @@ int main (int argc, char *argv[])
usage(); usage();
} }
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }
@ -141,5 +142,6 @@ static void usage (void)
fprintf (stderr, "\tutm2ll 19T 306130 4726010\n"); fprintf (stderr, "\tutm2ll 19T 306130 4726010\n");
fprintf (stderr, "\tutm2ll 19TCH06132600\n"); fprintf (stderr, "\tutm2ll 19TCH06132600\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (1); exit (1);
} }

View File

@ -76,6 +76,7 @@ int main (int argc, char *argv[])
if (tnc == MYFDERROR) { if (tnc == MYFDERROR) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Can't open serial port to KISS TNC.\n"); dw_printf ("Can't open serial port to KISS TNC.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); // defined in stdlib.h exit (EXIT_FAILURE); // defined in stdlib.h
} }
@ -105,6 +106,7 @@ int main (int argc, char *argv[])
else if (fix < 0) { else if (fix < 0) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Can't communicate with GPS receiver.\n"); dw_printf ("Can't communicate with GPS receiver.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
else { else {
@ -120,6 +122,7 @@ int main (int argc, char *argv[])
serial_port_write (tnc, "\xc0\xff\xc0", 3); serial_port_write (tnc, "\xc0\xff\xc0", 3);
SLEEP_MS(100); SLEEP_MS(100);
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
} }
@ -177,6 +180,7 @@ static void walk96 (int fix, double lat, double lon, float knots, float course,
if (pp == NULL) { if (pp == NULL) {
text_color_set (DW_COLOR_ERROR); text_color_set (DW_COLOR_ERROR);
dw_printf ("Unexpected error in ax25_from_text. Quitting.\n"); dw_printf ("Unexpected error in ax25_from_text. Quitting.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (EXIT_FAILURE); // defined in stdlib.h exit (EXIT_FAILURE); // defined in stdlib.h
} }

View File

@ -828,6 +828,7 @@ int main (int argc, char *argv[]) {
text_color_set (DW_COLOR_REC); text_color_set (DW_COLOR_REC);
dw_printf ("XID test: Success.\n"); dw_printf ("XID test: Success.\n");
dw_printf ("\e[0m\e\n\e[0J\e");
exit (0); exit (0);
} }