diff options
| -rw-r--r-- | CopyMailto/DefaultURLHandler.h | 1 | ||||
| -rw-r--r-- | CopyMailto/DefaultURLHandler.m | 13 | ||||
| -rw-r--r-- | CopyMailto/main.m | 5 | 
3 files changed, 18 insertions, 1 deletions
| diff --git a/CopyMailto/DefaultURLHandler.h b/CopyMailto/DefaultURLHandler.h index 7bad3d0..fb54e9e 100644 --- a/CopyMailto/DefaultURLHandler.h +++ b/CopyMailto/DefaultURLHandler.h @@ -10,6 +10,7 @@  @interface DefaultURLHandler : NSObject ++ (OSStatus)setDefaultURLHandler;  + (void)saveDefaultURLHandler;  @end diff --git a/CopyMailto/DefaultURLHandler.m b/CopyMailto/DefaultURLHandler.m index 6ea69c1..8ce1728 100644 --- a/CopyMailto/DefaultURLHandler.m +++ b/CopyMailto/DefaultURLHandler.m @@ -10,6 +10,19 @@  @implementation DefaultURLHandler ++ (OSStatus)setDefaultURLHandler { +    CFStringRef scheme = (CFStringRef)@"mailto"; +    CFStringRef bundle_identifier = (__bridge CFStringRef)[[NSBundle mainBundle] bundleIdentifier]; +    NSLog(@"%@", bundle_identifier); + +    OSStatus status = LSSetDefaultHandlerForURLScheme(scheme, bundle_identifier); +    NSLog(@"%d", status); + +    CFRelease(scheme); + +    return status; +} +  + (void)saveDefaultURLHandler {      CFStringRef mailto = (CFStringRef)@"mailto";      CFStringRef bundle_identifier = LSCopyDefaultHandlerForURLScheme(mailto); diff --git a/CopyMailto/main.m b/CopyMailto/main.m index 8dfe2c1..e61f04e 100644 --- a/CopyMailto/main.m +++ b/CopyMailto/main.m @@ -11,6 +11,9 @@  #import "DefaultURLHandler.h"  int main(int argc, const char * argv[]) { -    [DefaultURLHandler saveDefaultURLHandler]; +    if (argc == 2 && strcmp(argv[1], "--set-url-handler") == 0) { +        return [DefaultURLHandler setDefaultURLHandler]; +    } +      return NSApplicationMain(argc, argv);  } | 
