diff options
Diffstat (limited to 'CopyMailto')
-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); } |