From 1cd099e7930364ba8e6bb30c140e89ae6668b9a9 Mon Sep 17 00:00:00 2001 From: pennam Date: Tue, 23 Jan 2024 09:18:46 +0100 Subject: [PATCH] Add public print method that takes va_list instead of varargs --- src/Arduino_DebugUtils.cpp | 26 +++++++++++--------------- src/Arduino_DebugUtils.h | 2 +- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/Arduino_DebugUtils.cpp b/src/Arduino_DebugUtils.cpp index 270927b..9fc3787 100644 --- a/src/Arduino_DebugUtils.cpp +++ b/src/Arduino_DebugUtils.cpp @@ -91,22 +91,23 @@ void Arduino_DebugUtils::timestampOff() { void Arduino_DebugUtils::print(int const debug_level, const char * fmt, ...) { - if (!shouldPrint(debug_level)) - return; - - if (_print_debug_label) - printDebugLabel(debug_level); + va_list args; + va_start(args, fmt); + print(debug_level, fmt, args); + va_end(args); +} - if (_timestamp_on) - printTimestamp(); +void Arduino_DebugUtils::print(int const debug_level, const __FlashStringHelper * fmt, ...) +{ + String fmt_str(fmt); va_list args; va_start(args, fmt); - vPrint(fmt, args); + print(debug_level, fmt_str.c_str(), args); va_end(args); } -void Arduino_DebugUtils::print(int const debug_level, const __FlashStringHelper * fmt, ...) +void Arduino_DebugUtils::print(int const debug_level, const char * fmt, va_list args) { if (!shouldPrint(debug_level)) return; @@ -117,12 +118,7 @@ void Arduino_DebugUtils::print(int const debug_level, const __FlashStringHelper if (_timestamp_on) printTimestamp(); - String fmt_str(fmt); - - va_list args; - va_start(args, fmt); - vPrint(fmt_str.c_str(), args); - va_end(args); + vPrint(fmt, args); } /****************************************************************************** diff --git a/src/Arduino_DebugUtils.h b/src/Arduino_DebugUtils.h index 73e6287..d1ae368 100644 --- a/src/Arduino_DebugUtils.h +++ b/src/Arduino_DebugUtils.h @@ -69,7 +69,7 @@ class Arduino_DebugUtils { void print(int const debug_level, const char * fmt, ...); void print(int const debug_level, const __FlashStringHelper * fmt, ...); - + void print(int const debug_level, const char * fmt, va_list args); private: