From 42ae4790815734dca6357d3b69f2aca604316aa3 Mon Sep 17 00:00:00 2001 From: Daniel Vassdal Date: Sat, 18 May 2013 11:31:25 -0700 Subject: Added macro to allow simpler logic in functions with the need to vsnprintf --- include/inspircd.h | 3 ++- include/inspstring.h | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/inspircd.h b/include/inspircd.h index 9a9583499..de574b6f4 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -543,7 +543,8 @@ class CoreExport InspIRCd * @param ... * @return The formatted string */ - static const char* Format(const char* formatString, ...); + static const char* Format(const char* formatString, ...) CUSTOM_PRINTF(1, 2); + static const char* Format(const va_list &vaList, const char* formatString) CUSTOM_PRINTF(2, 0); static void QuickExit(int status); diff --git a/include/inspstring.h b/include/inspstring.h index eb7b7218f..ccc77da66 100644 --- a/include/inspstring.h +++ b/include/inspstring.h @@ -24,6 +24,15 @@ #include "config.h" #include +/** Sets ret to the formated string. last is the last parameter before ..., and format is the format in printf-style */ +#define VAFORMAT(ret, last, format) \ + do { \ + va_list _vaList; \ + va_start(_vaList, last); \ + ret = InspIRCd::Format(_vaList, format); \ + va_end(_vaList); \ + } while (false); + /** Compose a hex string from raw data. * @param raw The raw data to compose hex from (can be NULL if rawsize is 0) * @param rawsize The size of the raw data buffer -- cgit v1.2.3