|  | #import <Cocoa/Cocoa.h> | 
|  | #import <Foundation/Foundation.h> | 
|  |  | 
|  | #include <u.h> | 
|  | #include <libc.h> | 
|  |  | 
|  | AUTOFRAMEWORK(Foundation) | 
|  | AUTOFRAMEWORK(Cocoa) | 
|  |  | 
|  | @interface appdelegate : NSObject @end | 
|  |  | 
|  | void | 
|  | main(void) | 
|  | { | 
|  | if(OSX_VERSION < 100700) | 
|  | [NSAutoreleasePool new]; | 
|  |  | 
|  | [NSApplication sharedApplication]; | 
|  | NSObject *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 |