diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2010-04-06 11:16:28 +0000 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2010-04-06 11:16:28 +0000 |
commit | 020dfc54dc819f7c10e8eb43d4ddaaef834dca70 (patch) | |
tree | fa789fd7d492f40fb987fa919accce3b2926f368 /gssc.mm | |
parent | 2a72f832e35d56a748537c894b00a236bae8f16a (diff) |
Adding gssc and updating uicache.
Diffstat (limited to 'gssc.mm')
-rw-r--r-- | gssc.mm | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -0,0 +1,42 @@ +#import <GraphicsServices/GraphicsServices.h> +#import <UIKit/UIKit.h> +#include <stdio.h> +#include <dlfcn.h> + +static CFArrayRef (*$GSSystemCopyCapability)(CFStringRef); +static CFArrayRef (*$GSSystemGetCapability)(CFStringRef); + +int main(int argc, char *argv[]) { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + NSString *name = nil; + + if (argc == 2) + name = [NSString stringWithUTF8String:argv[0]]; + else if (argc > 2) { + fprintf(stderr, "usage: %s [capability]\n", argv[0]); + exit(1); + } + + $GSSystemCopyCapability = reinterpret_cast<CFArrayRef (*)(CFStringRef)>(dlsym(RTLD_DEFAULT, "GSSystemCopyCapability")); + $GSSystemGetCapability = reinterpret_cast<CFArrayRef (*)(CFStringRef)>(dlsym(RTLD_DEFAULT, "GSSystemGetCapability")); + + const NSArray *capability; + + if ($GSSystemCopyCapability != NULL) { + capability = reinterpret_cast<const NSArray *>((*$GSSystemCopyCapability)(reinterpret_cast<CFStringRef>(name))); + capability = [capability autorelease]; + } else if ($GSSystemGetCapability != NULL) { + capability = reinterpret_cast<const NSArray *>((*$GSSystemGetCapability)(reinterpret_cast<CFStringRef>(name))); + } else + capability = nil; + + NSLog(@"%@", capability); + + /*for (NSString *value in capability) + printf("%s\n", [value UTF8String]);*/ + + [pool release]; + + return 0; +} |