Advertisement
Guest User

Untitled

a guest
May 8th, 2013
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int cmd_main(int argc, char *argv[]) {
  2.     @autoreleasepool {
  3.         NSMutableDictionary* userInfo = [NSMutableDictionary dictionaryWithCapacity:1];
  4.         NSMutableDictionary* argsInfo = [NSMutableDictionary dictionaryWithCapacity:1];
  5.        
  6.         for (int i=0; i<argc; i++) {
  7.             char buf[NAME_MAX];
  8.             realpath(argv[i], buf);
  9.             [argsInfo setObject:[NSString stringWithUTF8String:buf]
  10.                          forKey:[NSString stringWithFormat:@"%d", i]];
  11.         }
  12.        
  13.         [userInfo setObject:[NSString stringWithFormat:@"%d", argc] forKey:@"argc"];
  14.         [userInfo setObject:argsInfo forKey:@"args"];
  15.  
  16.         NSDistributedNotificationCenter *notc = [NSDistributedNotificationCenter defaultCenter];
  17.         [notc postNotificationName:@"xqiv-cmd"
  18.                             object:nil
  19.                           userInfo:userInfo
  20.                 deliverImmediately:YES];
  21.     }
  22.     return 0;
  23. }
  24.  
  25. int main(int argc, char *argv[])
  26. {
  27.     @autoreleasepool {
  28.         NSWorkspace *ws = [NSWorkspace sharedWorkspace];
  29.         NSArray *apps = [ws runningApplications];
  30.         int i = 0;
  31.         NSRunningApplication *xqiv = [NSRunningApplication currentApplication];
  32.  
  33.         NSString *project_id = @"cz.smrt28.xqiv";
  34.  
  35.         for (NSRunningApplication  *app in apps) {
  36.             NSString *appId = [app bundleIdentifier];
  37.             if ([project_id isEqualToString:appId]) {
  38.                 return cmd_main(argc, argv);
  39.             }
  40.         }
  41.     }
  42.    
  43.     if (fork() == 0) {
  44.         return NSApplicationMain(argc, (const char **)argv);
  45.     } else {
  46.         return cmd_main(argc, argv);
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement