From a172143fe6f0ea12be191a58f6840945d3bd528d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 10 Aug 2014 22:24:08 -0400 Subject: [PATCH] Improved the error reporting facilities of uiinit() on Mac OS X. Not used yet, though... --- redo/objc_darwin.h | 2 +- redo/uitask_darwin.go | 10 ++++++++-- redo/uitask_darwin.m | 3 +-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/redo/objc_darwin.h b/redo/objc_darwin.h index 4066b5a..14164f0 100644 --- a/redo/objc_darwin.h +++ b/redo/objc_darwin.h @@ -38,7 +38,7 @@ struct xpoint { /* uitask_darwin.m */ extern id getAppDelegate(void); /* used by the other .m files */ -extern BOOL uiinit(void); +extern void uiinit(char **); extern void uimsgloop(void); extern void uistop(void); extern void issue(void *); diff --git a/redo/uitask_darwin.go b/redo/uitask_darwin.go index 9218c8e..094ba01 100644 --- a/redo/uitask_darwin.go +++ b/redo/uitask_darwin.go @@ -3,6 +3,7 @@ package ui import ( + "fmt" "unsafe" ) @@ -12,8 +13,13 @@ import ( import "C" func uiinit() error { - // TODO check error - C.uiinit() + var errmsg *C.char + + errmsg = nil + C.uiinit(&errmsg) + if errmsg != nil { + return fmt.Errorf("package ui initialization failed: %s", C.GoString(errmsg)) + } return nil } diff --git a/redo/uitask_darwin.m b/redo/uitask_darwin.m index 7dc4881..0f4d774 100644 --- a/redo/uitask_darwin.m +++ b/redo/uitask_darwin.m @@ -56,7 +56,7 @@ id getAppDelegate(void) return appDelegate; } -BOOL uiinit(void) +void uiinit(char **errmsg) { areaClass = getAreaClass(); appDelegate = [appDelegateClass new]; @@ -66,7 +66,6 @@ BOOL uiinit(void) [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; [NSApp activateIgnoringOtherApps:YES]; // TODO rsc does this; finder says NO? [NSApp setDelegate:appDelegate]; - return YES; } void uimsgloop(void)