#import <Cocoa/Cocoa.h> #import <Foundation/Foundation.h> #include <u.h> #include <libc.h> AUTOFRAMEWORK(Foundation) AUTOFRAMEWORK(Cocoa) @interface appdelegate : NSObject<NSApplicationDelegate> @end void main(void) { if(OSX_VERSION < 100700) [NSAutoreleasePool new]; [NSApplication sharedApplication]; NSObject<NSApplicationDelegate> *delegate = [appdelegate new]; [NSApp setDelegate:delegate]; NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager]; /* Register a call-back for URL Events */ [appleEventManager setEventHandler:delegate andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; [NSApp run]; } @implementation appdelegate - (void)application:(id)arg openFiles:(NSArray*)file { int i,n; NSString *s; n = [file count]; for(i=0; i<n; i++){ s = [file objectAtIndex:i]; print("%s\n", [s UTF8String]); } [NSApp terminate:self]; } - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent { NSString* url = [[event descriptorForKeyword:keyDirectObject] stringValue]; print("%s\n", [url UTF8String] + (sizeof("plumb:") - 1)); [NSApp terminate:self]; } @end