]> git.saurik.com Git - cydget.git/commitdiff
Take WinterBoard's implementation of wb$filter.
authorJay Freeman (saurik) <saurik@saurik.com>
Fri, 24 Jan 2014 19:30:03 +0000 (11:30 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Fri, 24 Jan 2014 19:30:03 +0000 (11:30 -0800)
CydgetSettings.mm

index a97d19c879515135a82a07bc92bfbf1ba38d496d..ca82f8f3a50eed45a35e6646a414acc75dccf2a2 100644 (file)
@@ -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;
 }