mirror of
https://github.com/tio/tio.git
synced 2026-05-01 14:57:59 +02:00
Cleanup error printing routines
Clean up so that only the following error related printing functions are used: tio_error_printf(), tio_error_printf_silent(), tio_warning_printf(). A session mode switch is introduced for error printing so that it will print error messages with better formatting depending on in or out of session.
This commit is contained in:
parent
73a30a89ef
commit
ac859f41b9
9 changed files with 122 additions and 77 deletions
61
src/error.c
61
src/error.c
|
|
@ -19,27 +19,82 @@
|
|||
* 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#define __STDC_WANT_LIB_EXT2__ 1 // To access vasprintf
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include "options.h"
|
||||
#include "print.h"
|
||||
#include "error.h"
|
||||
|
||||
char error[2][1000];
|
||||
static char error[2][1000];
|
||||
static bool in_session = false;
|
||||
|
||||
void error_enter_session_mode(void)
|
||||
{
|
||||
in_session = true;
|
||||
}
|
||||
|
||||
void error_printf_(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char *line;
|
||||
|
||||
va_start(args, format);
|
||||
vasprintf(&line, format, args);
|
||||
|
||||
if (in_session)
|
||||
{
|
||||
if (print_tainted)
|
||||
{
|
||||
putchar('\n');
|
||||
}
|
||||
ansi_error_printf("[%s] %s", current_time(), line);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "%s\n", line);
|
||||
}
|
||||
|
||||
va_end(args);
|
||||
|
||||
print_tainted = false;
|
||||
free(line);
|
||||
}
|
||||
|
||||
void tio_error_printf(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
vsnprintf(error[0], 1000, format, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void tio_error_printf_silent(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
vsnprintf(error[1], 1000, format, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void error_exit(void)
|
||||
{
|
||||
if (error[0][0] != 0)
|
||||
{
|
||||
/* Print error */
|
||||
tio_error_printf("Error: %s", error[0]);
|
||||
error_printf_("Error: %s", error[0]);
|
||||
}
|
||||
else if ((error[1][0] != 0) && (option.no_autoconnect))
|
||||
{
|
||||
/* Print silent error */
|
||||
tio_error_printf("Error: %s", error[1]);
|
||||
error_printf_("Error: %s", error[1]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue