// // main.m // PDiQue // // Created by Joseph Palani Garcia on Thu Sep 04 2003. // Copyright (c) 2003 __MyCompanyName__. All rights reserved. // #import #define ProductID @"4" #define VendorID @"2334" int main(int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; NSArray *a=[NSArray arrayWithObjects: @"/Applications/Palm/HotSync Manager/Contents/Plug-ins/USBNotifier/Contents/Info.plist", @"/Applications/Palm/Transport Monitor/Contents/Plug-ins/USBNotifier/Contents/Info.plist", @"/Library/Application Support/Palm HotSync/Transports/USB/Contents/Info.plist", nil]; NSEnumerator *e = [a objectEnumerator]; NSString *filename; while((filename=[e nextObject])!=nil){ NSData *data=[[NSData alloc]initWithContentsOfFile:filename]; if(data==nil){ NSLog(@"\"%@\" does not exist\n",filename); continue; } NSPropertyListFormat format; NSMutableArray *usbdevs; NSDictionary *d=[NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListMutableContainers format:&format errorDescription:nil]; if(d==nil){ NSLog(@"\"%@\" is not a property list\n",filename); continue; } [d retain]; [data release]; usbdevs = [d objectForKey:@"USBDevices"]; if(usbdevs==nil){ NSLog(@"\"%@\" has no USBDevices property. no work done.\n",filename); continue; } NSEnumerator *usbdev=[usbdevs objectEnumerator]; NSDictionary *dev; NSDictionary *newdev = [NSDictionary dictionaryWithObjectsAndKeys:VendorID,@"USBVendor",ProductID,@"USBProduct",nil]; BOOL nowork=FALSE; while((dev=[usbdev nextObject])!=nil){ if([newdev isEqualToDictionary:dev]){ NSLog(@"\"%@\" already contains the new dev. no work\n",filename); nowork=TRUE; } } if(!nowork){ [usbdevs insertObject:newdev atIndex:[usbdevs count]]; data = [NSPropertyListSerialization dataFromPropertyList:d format:format errorDescription:nil]; [data writeToFile:filename atomically:YES]; } [d release]; } //[data release]; [pool release]; return 0; }