aboutsummaryrefslogtreecommitdiffstats
path: root/CopyMailto
diff options
context:
space:
mode:
Diffstat (limited to 'CopyMailto')
-rw-r--r--CopyMailto/DefaultURLHandler.h1
-rw-r--r--CopyMailto/DefaultURLHandler.m13
-rw-r--r--CopyMailto/main.m5
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);
}