]> git.saurik.com Git - cydia.git/commitdiff
Add package.getField(name).
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 20 Feb 2011 10:12:22 +0000 (02:12 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 20 Feb 2011 10:12:22 +0000 (02:12 -0800)
MobileCydia.mm

index 24d9066af0d74e276fadfe818b0f4830d40b81ba..48163b06ac596fb771b14176ff1089faab75e820 100644 (file)
@@ -2217,6 +2217,8 @@ struct PackageNameOrdering :
     if (false);
     else if (selector == @selector(clear))
         return @"clear";
+    else if (selector == @selector(getField:))
+        return @"getField";
     else if (selector == @selector(hasTag:))
         return @"hasTag";
     else if (selector == @selector(install))
@@ -2277,6 +2279,20 @@ struct PackageNameOrdering :
     return relations;
 } }
 
+- (NSString *) getField:(NSString *)name {
+@synchronized (database_) {
+    if ([database_ era] != era_ || file_.end())
+        return nil;
+
+    pkgRecords::Parser &parser([database_ records]->Lookup(file_));
+
+    const char *start, *end;
+    if (!parser.Find([name UTF8String], start, end))
+        return (NSString *) [NSNull null];
+
+    return [(NSString *) CYStringCreate(start, end - start) autorelease];
+} }
+
 - (void) parse {
     if (parsed_ != NULL)
         return;