static CGFloat ScreenScale_;
static NSString *Idiom_;
static NSString *Firmware_;
+static NSString *Major_;
static _H<NSMutableDictionary> SessionData_;
static _H<NSObject> HostConfig_;
/* }}} */
/* Package Class {{{ */
struct ParsedPackage {
+ CYString md5sum_;
CYString tagline_;
CYString architecture_;
@"longDescription",
@"longSection",
@"maintainer",
+ @"md5sum",
@"mode",
@"name",
@"purposes",
{"support", &parsed->support_},
{"sponsor", &parsed->sponsor_},
{"author", &parsed->author_},
+ {"md5sum", &parsed->md5sum_},
};
for (size_t i(0); i != sizeof(names) / sizeof(names[0]); ++i) {
return maintainer.empty() ? nil : [MIMEAddress addressWithString:[NSString stringWithUTF8String:maintainer.c_str()]];
} }
+- (NSString *) md5sum {
+ return parsed_ == NULL ? nil : (id) parsed_->md5sum_;
+}
+
- (size_t) size {
@synchronized (database_) {
if ([database_ era] != era_ || version_.end())
}
Pcre pattern("^([0-9]+\\.[0-9]+)");
+
if (pattern([device systemVersion]))
Firmware_ = pattern[1];
+ if (pattern(Cydia_))
+ Major_ = pattern[1];
SessionData_ = [NSMutableDictionary dictionaryWithCapacity:4];
}
NSString *ui(@"ui/ios");
- if (Firmware_ != nil)
- ui = [ui stringByAppendingString:[NSString stringWithFormat:@"-%@", Firmware_]];
if (Idiom_ != nil)
ui = [ui stringByAppendingString:[NSString stringWithFormat:@"~%@", Idiom_]];
+ ui = [ui stringByAppendingString:[NSString stringWithFormat:@"/%@", Major_]];
UI_ = CydiaURL(ui);
PackageName = reinterpret_cast<CYString &(*)(Package *, SEL)>(method_getImplementation(class_getInstanceMethod([Package class], @selector(cyname))));