From 45f3cd71ab8f6ced4b38c420cd8cc0586b7c39ab Mon Sep 17 00:00:00 2001 From: CreeperMario Date: Sun, 20 Aug 2017 16:57:43 +0930 Subject: [PATCH] whb: Modification of logging functions * WHBLogPrint and WHBLogPrint have been renamed to WHBLogWrite and WHBLogWrite respectively. * WHBLogPrint and WHBLogPrintf have been re-implemented to automatically add a new line to the end of the string, and then send the string to WHBLogWrite. --- src/libwhb/include/whb/log.h | 6 ++++++ src/libwhb/src/log.c | 40 +++++++++++++++++++++++++++++++++++- src/libwhb/src/log_cafe.c | 11 +++++++++- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/libwhb/include/whb/log.h b/src/libwhb/include/whb/log.h index 10871b03..df3c6c2d 100644 --- a/src/libwhb/include/whb/log.h +++ b/src/libwhb/include/whb/log.h @@ -16,9 +16,15 @@ typedef void (*LogHandlerFn)(const char *msg); BOOL WHBAddLogHandler(LogHandlerFn fn); +BOOL +WHBLogWrite(const char *str); + BOOL WHBLogPrint(const char *str); +BOOL +WHBLogWritef(const char *fmt, ...); + BOOL WHBLogPrintf(const char *fmt, ...); diff --git a/src/libwhb/src/log.c b/src/libwhb/src/log.c index 6b52c25f..2ee80208 100644 --- a/src/libwhb/src/log.c +++ b/src/libwhb/src/log.c @@ -26,7 +26,7 @@ WHBAddLogHandler(LogHandlerFn fn) } BOOL -WHBLogPrint(const char *str) +WHBLogWrite(const char *str) { int i; @@ -39,6 +39,44 @@ WHBLogPrint(const char *str) return TRUE; } +BOOL +WHBLogPrint(const char *str) +{ + char *buf = MEMAllocFromDefaultHeapEx(PRINTF_BUFFER_LENGTH, 4); + BOOL result; + + if(!buf) { + return FALSE; + } + + snprintf(buf, PRINTF_BUFFER_LENGTH, "%s\n", str); + result = WHBLogWrite(buf); + + MEMFreeToDefaultHeap(buf); + return result; +} + +BOOL +WHBLogWritef(const char *fmt, ...) +{ + char *buf = MEMAllocFromDefaultHeapEx(PRINTF_BUFFER_LENGTH, 4); + va_list va; + BOOL result; + + if (!buf) { + return FALSE; + } + + va_start(va, fmt); + + vsnprintf(buf, PRINTF_BUFFER_LENGTH, fmt, va); + result = WHBLogWrite(buf); + + MEMFreeToDefaultHeap(buf); + va_end(va); + return result; +} + BOOL WHBLogPrintf(const char *fmt, ...) { diff --git a/src/libwhb/src/log_cafe.c b/src/libwhb/src/log_cafe.c index a1367d32..e3bea7ac 100644 --- a/src/libwhb/src/log_cafe.c +++ b/src/libwhb/src/log_cafe.c @@ -1,10 +1,19 @@ #include #include +#include + static void cafeLogHandler(const char * msg) { - OSReport("%s\n", msg); + int length = strlen(msg); + + if(msg[length-1] != '\n') { + OSReport("%s\n", msg); + } + else { + OSReport(msg); + } } BOOL