#include "config_error.h" #include #include #include #include static __thread char config_errors[4096]; void config_error_clear(void) { config_errors[0] = '\0'; } const char *config_error_text(void) { return config_errors; } void config_error_append(const char *format, ...) { const int saved_errno = errno; size_t used = strlen(config_errors); if (used < sizeof(config_errors) - 2) { if (used) config_errors[used++] = '\n'; va_list args; va_start(args, format); vsnprintf(config_errors + used, sizeof(config_errors) - used, format, args); va_end(args); } errno = saved_errno; }