- BOOL enough = YES;
- for (NSArray *entry in items)
- if ([entry count] <= 0)
- enough = NO;
-
- if (!recently || !items || !enough) {
- selectedIndex = 0;
- items = [NSMutableArray array];
- [items addObject:[NSArray arrayWithObject:@"cydia://home"]];
- [items addObject:[NSArray arrayWithObject:@"cydia://sections"]];
- [items addObject:[NSArray arrayWithObject:@"cydia://changes"]];
- if (!IsWildcat_) {
- [items addObject:[NSArray arrayWithObject:@"cydia://manage"]];
- } else {
- [items addObject:[NSArray arrayWithObject:@"cydia://installed"]];
- [items addObject:[NSArray arrayWithObject:@"cydia://sources"]];
+ if (valid) {
+ for (unsigned int i = 0; i < [standard count]; i++) {
+ NSArray *std = [standard objectAtIndex:i], *sav = [saved objectAtIndex:i];
+ // XXX: The "hasPrefix" sanity check here could be, in theory, fooled,
+ // but it's good enough for now.
+ if ([sav count] == 0 || ![[sav objectAtIndex:0] hasPrefix:[std objectAtIndex:0]]) {
+ valid = NO;
+ break;
+ }