Add printf-like macro.

This should help catch some formatting bugs.
This commit is contained in:
C.W. Betts 2021-02-04 17:15:28 -07:00
parent 05545566e7
commit 01b3b5066d
2 changed files with 7 additions and 1 deletions

View file

@ -46,7 +46,7 @@ void SetFilterLevel(LOGLEVEL level);
// writes a message to the log // writes a message to the log
void Write(const char* channelName, const char* functionName, LOGLEVEL level, const char* message); void Write(const char* channelName, const char* functionName, LOGLEVEL level, const char* message);
void Writef(const char* channelName, const char* functionName, LOGLEVEL level, const char* format, ...); void Writef(const char* channelName, const char* functionName, LOGLEVEL level, const char* format, ...) printflike(4, 5);
void Writev(const char* channelName, const char* functionName, LOGLEVEL level, const char* format, va_list ap); void Writev(const char* channelName, const char* functionName, LOGLEVEL level, const char* format, va_list ap);
} // namespace Log } // namespace Log

View file

@ -49,6 +49,12 @@ char (&__countof_ArraySizeHelper(T (&array)[N]))[N];
#define offsetof(st, m) ((size_t)((char*)&((st*)(0))->m - (char*)0)) #define offsetof(st, m) ((size_t)((char*)&((st*)(0))->m - (char*)0))
#endif #endif
#ifdef __GNUC__
#define printflike(n,m) __attribute__((format(printf,n,m)))
#else
#define printflike(n,m)
#endif
// disable warnings that show up at warning level 4 // disable warnings that show up at warning level 4
// TODO: Move to build system instead // TODO: Move to build system instead
#ifdef _MSC_VER #ifdef _MSC_VER