Ken Thomases : winemac: Add a simple ERR() logging macro that can be used from Cocoa code.
Alexandre Julliard
julliard at winehq.org
Mon Jan 21 13:52:23 CST 2013
Module: wine
Branch: master
Commit: b6d902ee4611e648fff592c0e4c8834f48590690
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6d902ee4611e648fff592c0e4c8834f48590690
Author: Ken Thomases <ken at 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");
More information about the wine-cvs
mailing list