From: Jay Freeman (saurik) Date: Fri, 24 Jan 2014 19:30:03 +0000 (-0800) Subject: Take WinterBoard's implementation of wb$filter. X-Git-Tag: v0.9.4009~7 X-Git-Url: https://git.saurik.com/cydget.git/commitdiff_plain/5907c42425c139bad33a925efd3ba0a084d7e4a0 Take WinterBoard's implementation of wb$filter. --- diff --git a/CydgetSettings.mm b/CydgetSettings.mm index a97d19c..ca82f8f 100644 --- a/CydgetSettings.mm +++ b/CydgetSettings.mm @@ -338,8 +338,28 @@ static NSString *_plist; } - (id) specifiers { - if (!_specifiers) - _specifiers = [[self loadSpecifiersFromPlistName:@"Cydget" target:self] retain]; + if (!_specifiers) { + NSMutableArray *specifiers([NSMutableArray array]); + for (PSSpecifier *specifier in [self loadSpecifiersFromPlistName:@"Cydget" target:self]) { + if (NSArray *version = [specifier propertyForKey:@"wb$filter"]) { + size_t count([version count]); + if (count == 0 || count > 2) + continue; + + double lower([[version objectAtIndex:0] doubleValue]); + if (kCFCoreFoundationVersionNumber < lower) + continue; + + if (count != 1) { + double upper([[version objectAtIndex:1] doubleValue]); + if (upper <= kCFCoreFoundationVersionNumber) + continue; + } + } + [specifiers addObject:specifier]; + } + _specifiers = [specifiers retain]; + } return _specifiers; }