diff --git a/Framework/Utilities.cpp b/Framework/Utilities.cpp index f9eac81..22a00dc 100644 --- a/Framework/Utilities.cpp +++ b/Framework/Utilities.cpp @@ -2,6 +2,7 @@ # include // for OutputDebugStringA #endif #include "Utilities.h" +#include static ErrorHandler s_defaultErrorHandler; @@ -15,7 +16,9 @@ void yqDebugBreak() { +#ifdef _WIN32 DebugBreak(); +#endif } @@ -27,6 +30,7 @@ #else // ANSI C / POSIX porting code fprintf(stderr, a_string); + fprintf(stderr, "\n"); #endif } @@ -82,12 +86,20 @@ { va_list args; va_start(args, a_format); +#ifdef _WIN32 auto sizeRequired = size_t(_vscprintf(a_format, args) + 1); auto message = (char*)_alloca(sizeRequired); _vsnprintf(message, sizeRequired, a_format, args); if (g_currentModule.m_messageLogger) g_currentModule.m_messageLogger->logMessage(a_logLevel, a_location, message); _freea(message); +#else + char* message = 0; + vasprintf(&message, a_format, args); + if (g_currentModule.m_messageLogger) + g_currentModule.m_messageLogger->logMessage(a_logLevel, a_location, message); + free(message); +#endif va_end(args); } @@ -96,12 +108,20 @@ { va_list args; va_start(args, a_format); +#ifdef _WIN32 auto sizeRequired = size_t(_vscprintf(a_format, args) + 1); auto message = (char*)_alloca(sizeRequired); _vsnprintf(message, sizeRequired, a_format, args); if (g_currentModule.m_errorHandler) g_currentModule.m_errorHandler->handleError(a_result, a_location, message); _freea(message); +#else + char* message = 0; + vasprintf(&message, a_format, args); + if (g_currentModule.m_errorHandler) + g_currentModule.m_errorHandler->handleError(a_result, a_location, message); + free(message); +#endif va_end(args); } @@ -176,4 +196,5 @@ } -*/ \ No newline at end of file +*/ +