// (C) 2018-2023 by Folkert van Heusden // Released under MIT license #include #include #include #include #include #include #include #if defined(ESP32) || defined(BUILD_FOR_RP2040) #include #elif defined(_WIN32) #else #include #endif #include "error.h" [[ noreturn ]] void error_exit(bool sys_err, const char *format, ...) { int e = errno; #if !defined(_WIN32) && !defined(ESP32) && !defined(BUILD_FOR_RP2040) (void)endwin(); #endif #if defined(ESP32) || defined(BUILD_FOR_RP2040) Serial.println(format); #else va_list ap; va_start(ap, format); (void)vfprintf(stderr, format, ap); va_end(ap); if (sys_err == true) fprintf(stderr, "error: %s (%d)\n", strerror(e), e); #endif exit(1); }