From d87466337f434805e34a8b5ebd46ad9db61955ea Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sun, 5 Jan 2025 17:59:23 +0100 Subject: [PATCH] Generate formatting warnings for custom logger --- src/windows-emulator/logger.hpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/windows-emulator/logger.hpp b/src/windows-emulator/logger.hpp index 139d0a1d..2211133c 100644 --- a/src/windows-emulator/logger.hpp +++ b/src/windows-emulator/logger.hpp @@ -1,5 +1,11 @@ #pragma once +#ifdef OS_WINDOWS +#define FORMAT_ATTRIBUTE(fmt_pos, var_pos) +#else +#define FORMAT_ATTRIBUTE(fmt_pos, var_pos) __attribute__((format( printf, fmt_pos, var_pos))) +#endif + enum class color { black, @@ -17,34 +23,34 @@ enum class color class logger { public: - void print(color c, const char* message, ...) const; + void print(color c, const char* message, ...) const FORMAT_ATTRIBUTE(3, 4); template - void info(const char* message, Args... args) + void info(const char* message, Args... args) const { this->print(color::cyan, message, args...); } template - void warn(const char* message, Args... args) + void warn(const char* message, Args... args) const { this->print(color::yellow, message, args...); } template - void error(const char* message, Args... args) + void error(const char* message, Args... args) const { this->print(color::red, message, args...); } template - void success(const char* message, Args... args) + void success(const char* message, Args... args) const { this->print(color::green, message, args...); } template - void log(const char* message, Args... args) + void log(const char* message, Args... args) const { this->print(color::gray, message, args...); }