Do not evaluate hidden LogPrint arguments

This commit is contained in:
Pieter Wuille 2016-12-23 14:22:46 -08:00
parent e8cfe1ee2d
commit 407cdd6cb8

View file

@ -74,14 +74,15 @@ bool LogAcceptCategory(const char* category);
/** Send a string to the log output */ /** Send a string to the log output */
int LogPrintStr(const std::string &str); int LogPrintStr(const std::string &str);
#define LogPrintf(...) LogPrint(NULL, __VA_ARGS__) #define LogPrint(category, ...) do { \
if (LogAcceptCategory((category))) { \
LogPrintStr(tfm::format(__VA_ARGS__)); \
} \
} while(0)
template<typename... Args> #define LogPrintf(...) do { \
static inline int LogPrint(const char* category, const char* fmt, const Args&... args) LogPrintStr(tfm::format(__VA_ARGS__)); \
{ } while(0)
if(!LogAcceptCategory(category)) return 0; \
return LogPrintStr(tfm::format(fmt, args...));
}
template<typename... Args> template<typename... Args>
bool error(const char* fmt, const Args&... args) bool error(const char* fmt, const Args&... args)