diff --git a/src/WebSockets.h b/src/WebSockets.h index c918c9f..0b26189 100644 --- a/src/WebSockets.h +++ b/src/WebSockets.h @@ -50,7 +50,10 @@ DEBUG_ESP_PORT.flush(); \ } #else -// #define DEBUG_WEBSOCKETS(...) os_printf( __VA_ARGS__ ) +#ifdef DEBUG_PORT +#define DEBUG_WEBSOCKETS(...) websocket_debug_printf(__VA_ARGS__) +void websocket_debug_printf(const char * format, ...); +#endif #endif #endif diff --git a/src/debug.cpp b/src/debug.cpp new file mode 100644 index 0000000..a4e6391 --- /dev/null +++ b/src/debug.cpp @@ -0,0 +1,32 @@ + +#include "WebSockets.h" + +#include + +#ifdef DEBUG_PORT + +void websocket_debug_printf(const char * format, ...) { + va_list arg; + va_start(arg, format); + char temp[64]; + char * buffer = temp; + size_t len = vsnprintf(temp, sizeof(temp), format, arg); + va_end(arg); + if(len > sizeof(temp) - 1) { + buffer = new(std::nothrow) char[len + 1]; + if(!buffer) { + return 0; + } + va_start(arg, format); + vsnprintf(buffer, len + 1, format, arg); + va_end(arg); + } + len = DEBUG_PORT.write((const uint8_t *)buffer, len); + if(buffer != temp) { + delete[] buffer; + } + DEBUG_PORT.flush(); + return len; +} + +#endif \ No newline at end of file diff --git a/travis/version.py b/travis/version.py index 71454ab..441fd33 100755 --- a/travis/version.py +++ b/travis/version.py @@ -73,7 +73,7 @@ def get_library_json_version(): def get_header_versions(): data = {} - define = re.compile('^#define WEBSOCKETS_VERSION_?(.*) "?([0-9\.]*)"?$') + define = re.compile('^#define WEBSOCKETS_VERSION_?(.*) "?([0-9\\.]*)"?$') with open(f'{base_dir}/src/WebSocketsVersion.h', 'r') as f: for line in f: m = define.match(line)