diff --git a/dlls/winemac.drv/cocoa_app.h b/dlls/winemac.drv/cocoa_app.h index bdaadf542f8..88da00c3d75 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 - (void) transformProcessToForeground; @@ -31,3 +34,6 @@ - (void) transformProcessToForeground; 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 d869a0538e8..45991f0956e 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 b5f3a14dd86..a7df9ca646f 100644 --- a/dlls/winemac.drv/macdrv_cocoa.h +++ b/dlls/winemac.drv/macdrv_cocoa.h @@ -109,6 +109,8 @@ /* 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 9ee249d8b95..e209f3d6127 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");