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)