From 2cd1afd9692214352f439b52dbb225b0a83ebb6a Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sun, 20 Feb 2011 02:12:22 -0800 Subject: Add package.getField(name). --- MobileCydia.mm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/MobileCydia.mm b/MobileCydia.mm index 24d9066..48163b0 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; -- cgit v1.2.3