Module: wine Branch: master Commit: b6d902ee4611e648fff592c0e4c8834f48590690 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6d902ee4611e648fff592c0e4...
Author: Ken Thomases ken@codeweavers.com Date: Mon Jan 21 00:07:47 2013 -0600
winemac: Add a simple ERR() logging macro that can be used from Cocoa code.
---
dlls/winemac.drv/cocoa_app.h | 6 ++++++ dlls/winemac.drv/cocoa_app.m | 24 ++++++++++++++++++++++++ dlls/winemac.drv/macdrv_cocoa.h | 2 ++ dlls/winemac.drv/macdrv_main.c | 1 + 4 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.h b/dlls/winemac.drv/cocoa_app.h index bdaadf5..88da00c 100644 --- a/dlls/winemac.drv/cocoa_app.h +++ b/dlls/winemac.drv/cocoa_app.h @@ -23,6 +23,9 @@ #include "macdrv_cocoa.h"
+#define ERR(...) do { if (macdrv_err_on) LogError(__func__, __VA_ARGS__); } while (false) + + @interface WineApplication : NSApplication <NSApplicationDelegate>
- (void) transformProcessToForeground; @@ -31,3 +34,6 @@
void OnMainThread(dispatch_block_t block); void OnMainThreadAsync(dispatch_block_t block); + +void LogError(const char* func, NSString* format, ...); +void LogErrorv(const char* func, NSString* format, va_list args); diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index d869a05..45991f0 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -21,6 +21,9 @@ #import "cocoa_app.h"
+int macdrv_err_on; + + @implementation WineApplication
- (void) transformProcessToForeground @@ -87,3 +90,24 @@ void OnMainThreadAsync(dispatch_block_t block) { dispatch_async(dispatch_get_main_queue(), block); } + +/*********************************************************************** + * LogError + */ +void LogError(const char* func, NSString* format, ...) +{ + va_list args; + va_start(args, format); + LogErrorv(func, format, args); + va_end(args); +} + +/*********************************************************************** + * LogErrorv + */ +void LogErrorv(const char* func, NSString* format, va_list args) +{ + NSString* message = [[NSString alloc] initWithFormat:format arguments:args]; + fprintf(stderr, "err:%s:%s", func, [message UTF8String]); + [message release]; +} diff --git a/dlls/winemac.drv/macdrv_cocoa.h b/dlls/winemac.drv/macdrv_cocoa.h index b5f3a14..a7df9ca 100644 --- a/dlls/winemac.drv/macdrv_cocoa.h +++ b/dlls/winemac.drv/macdrv_cocoa.h @@ -109,6 +109,8 @@ struct macdrv_display {
/* main */ +extern int macdrv_err_on; + extern int macdrv_start_cocoa_app(void) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c index 9ee249d..e209f3d 100644 --- a/dlls/winemac.drv/macdrv_main.c +++ b/dlls/winemac.drv/macdrv_main.c @@ -36,6 +36,7 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) switch(reason) { case DLL_PROCESS_ATTACH: + macdrv_err_on = ERR_ON(macdrv); if (macdrv_start_cocoa_app()) { ERR("Failed to start Cocoa app main loop\n");