From: Jay Freeman (saurik) Date: Sun, 20 Feb 2011 10:12:22 +0000 (-0800) Subject: Add package.getField(name). X-Git-Tag: v1.1.0%b1~275 X-Git-Url: https://git.saurik.com/cydia.git/commitdiff_plain/2cd1afd9692214352f439b52dbb225b0a83ebb6a?ds=inline Add package.getField(name). --- diff --git a/MobileCydia.mm b/MobileCydia.mm index 24d9066a..48163b06 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -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;