]> git.saurik.com Git - cydia.git/commitdiff
Try removing constructor (this is so annoying :/).
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 5 Mar 2017 05:52:46 +0000 (21:52 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 5 Mar 2017 05:52:46 +0000 (21:52 -0800)
CyteKit/RegEx.hpp
CyteKit/extern.h
CyteKit/extern.mm
MobileCydia.mm

index 8892a3e8c39e823e2dcdb2b47137552a91719863..40068a77c3870865707625f4d6becbc4c438940c 100644 (file)
@@ -58,14 +58,18 @@ class RegEx {
     {
     }
 
-    RegEx(const char *regex, NSString *data = nil) :
+    RegEx(const char *regex) :
         regex_(NULL),
         size_(_not(size_t))
     {
         this->operator =(regex);
+    }
 
-        if (data != nil)
-            this->operator ()(data);
+    template <typename Type_>
+    RegEx(const char *regex, const Type_ &data) :
+        RegEx(regex)
+    {
+        this->operator ()(data);
     }
 
     void operator =(const char *regex) {
index 12d043844883a4a59adfed4f0e3d3bdab73c6434..670f560c142cad0a82c0f1932b9c62caf4d8faa8 100644 (file)
 #define CyteKit_extern_H
 
 #include <CoreGraphics/CoreGraphics.h>
+#include <Foundation/Foundation.h>
 
 extern bool IsWildcat_;
 extern CGFloat ScreenScale_;
 
+extern char *Machine_;
+extern const char *System_;
+
 bool CyteIsReachable(const char *name);
 
+void CyteInitialize(NSString *app, NSString *version);
+
 #endif//CyteKit_extern_H
index cb8927a25807b0d475e6c7028c2f78b57c54c7e6..aad36267d39aab4ca3088eea8df317d95556f88d 100644 (file)
 **/
 /* }}} */
 
+#include <CyteKit/UCPlatform.h>
+
+#include <CyteKit/RegEx.hpp>
+#include <CyteKit/WebViewController.h>
 #include <CyteKit/extern.h>
 
 #include <SystemConfiguration/SystemConfiguration.h>
 #include <UIKit/UIKit.h>
 
+#include <sys/sysctl.h>
+
+#include <Menes/ObjectHandle.h>
+
 bool IsWildcat_;
 CGFloat ScreenScale_;
 
+char *Machine_;
+const char *System_;
+
 bool CyteIsReachable(const char *name) {
     SCNetworkReachabilityFlags flags; {
         SCNetworkReachabilityRef reachability(SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, name));
@@ -47,8 +58,7 @@ bool CyteIsReachable(const char *name) {
     ;
 }
 
-__attribute__((__constructor__))
-void CyteKit_extern() {
+void CyteInitialize(NSString *app, NSString *version) {
     UIScreen *screen([UIScreen mainScreen]);
     if ([screen respondsToSelector:@selector(scale)])
         ScreenScale_ = [screen scale];
@@ -61,4 +71,39 @@ void CyteKit_extern() {
         if (idiom == UIUserInterfaceIdiomPad)
             IsWildcat_ = true;
     }
+
+    size_t size;
+
+    sysctlbyname("kern.osversion", NULL, &size, NULL, 0);
+    char *osversion = new char[size];
+    if (sysctlbyname("kern.osversion", osversion, &size, NULL, 0) == -1)
+        perror("sysctlbyname(\"kern.osversion\", ?)");
+    else
+        System_ = osversion;
+
+    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
+    char *machine = new char[size];
+    if (sysctlbyname("hw.machine", machine, &size, NULL, 0) == -1)
+        perror("sysctlbyname(\"hw.machine\", ?)");
+    else
+        Machine_ = machine;
+
+    _H<NSString> product;
+    _H<NSString> safari;
+
+    if (NSDictionary *info = [NSDictionary dictionaryWithContentsOfFile:@"/Applications/MobileSafari.app/Info.plist"]) {
+        product = [info objectForKey:@"SafariProductVersion"] ?: [info objectForKey:@"CFBundleShortVersionString"];
+        safari = [info objectForKey:@"CFBundleVersion"];
+    }
+
+    NSString *agent([NSString stringWithFormat:@"%@/%@ CyF/%.2f", app, version, kCFCoreFoundationVersionNumber]);
+
+    if (RegEx match = RegEx("([0-9]+(\\.[0-9]+)+).*", safari))
+        agent = [NSString stringWithFormat:@"Safari/%@ %@", match[1], agent];
+    if (RegEx match = RegEx("([0-9]+[A-Z][0-9]+[a-z]?).*", System_))
+        agent = [NSString stringWithFormat:@"Mobile/%@ %@", match[1], agent];
+    if (RegEx match = RegEx("([0-9]+(\\.[0-9]+)+).*", product))
+        agent = [NSString stringWithFormat:@"Version/%@ %@", match[1], agent];
+
+    [CyteWebViewController setApplicationNameForUserAgent:agent];
 }
index 5a79c81d8a917f49d3c13cd1ecbcb6f51bb98cb5..e927ab3e8332af08beda78c5ad63a26c93bce48e 100644 (file)
@@ -641,14 +641,10 @@ static _H<UIFont> Font18_;
 static _H<UIFont> Font18Bold_;
 static _H<UIFont> Font22Bold_;
 
-static const char *Machine_ = NULL;
-static _H<NSString> System_;
 static NSString *SerialNumber_ = nil;
 static NSString *ChipID_ = nil;
 static NSString *BBSNum_ = nil;
 static _H<NSString> UniqueID_;
-static _H<NSString> Product_;
-static _H<NSString> Safari_;
 
 static _H<NSLocale> CollationLocale_;
 static _H<NSArray> CollationThumbs_;
@@ -4316,7 +4312,7 @@ class CydiaLogCleaner :
 }
 
 - (NSString *) build {
-    return System_;
+    return [NSString stringWithUTF8String:System_];
 }
 
 - (NSString *) coreFoundationVersionNumber {
@@ -9846,6 +9842,7 @@ int main(int argc, char *argv[]) {
 
     _trace();
 
+    CyteInitialize(@"Cydia", Cydia_);
     UpdateExternalStatus(0);
 
     Idiom_ = IsWildcat_ ? @"ipad" : @"iphone";
@@ -9988,46 +9985,11 @@ int main(int argc, char *argv[]) {
             perror("sysctlbyname(\"kern.maxproc\", #)");
     }
 
-    sysctlbyname("kern.osversion", NULL, &size, NULL, 0);
-    char *osversion = new char[size];
-    if (sysctlbyname("kern.osversion", osversion, &size, NULL, 0) == -1)
-        perror("sysctlbyname(\"kern.osversion\", ?)");
-    else
-        System_ = [NSString stringWithUTF8String:osversion];
-
-    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
-    char *machine = new char[size];
-    if (sysctlbyname("hw.machine", machine, &size, NULL, 0) == -1)
-        perror("sysctlbyname(\"hw.machine\", ?)");
-    else
-        Machine_ = machine;
-
-    int64_t usermem(0);
-    size = sizeof(usermem);
-    if (sysctlbyname("hw.usermem", &usermem, &size, NULL, 0) == -1)
-        usermem = 0;
-
     SerialNumber_ = (NSString *) CYIOGetValue("IOService:/", @"IOPlatformSerialNumber");
     ChipID_ = [CYHex((NSData *) CYIOGetValue("IODeviceTree:/chosen", @"unique-chip-id"), true) uppercaseString];
     BBSNum_ = CYHex((NSData *) CYIOGetValue("IOService:/AppleARMPE/baseband", @"snum"), false);
 
     UniqueID_ = UniqueIdentifier(device);
-
-    if (NSDictionary *info = [NSDictionary dictionaryWithContentsOfFile:@"/Applications/MobileSafari.app/Info.plist"]) {
-        Product_ = [info objectForKey:@"SafariProductVersion"] ?: [info objectForKey:@"CFBundleShortVersionString"];
-        Safari_ = [info objectForKey:@"CFBundleVersion"];
-    }
-
-    NSString *agent([NSString stringWithFormat:@"Cydia/%@ CyF/%.2f", Cydia_, kCFCoreFoundationVersionNumber]);
-
-    if (RegEx match = RegEx("([0-9]+(\\.[0-9]+)+).*", Safari_))
-        agent = [NSString stringWithFormat:@"Safari/%@ %@", match[1], agent];
-    if (RegEx match = RegEx("([0-9]+[A-Z][0-9]+[a-z]?).*", System_))
-        agent = [NSString stringWithFormat:@"Mobile/%@ %@", match[1], agent];
-    if (RegEx match = RegEx("([0-9]+(\\.[0-9]+)+).*", Product_))
-        agent = [NSString stringWithFormat:@"Version/%@ %@", match[1], agent];
-
-    [CyteWebViewController setApplicationNameForUserAgent:agent];
     /* }}} */
     /* Load Database {{{ */
     SectionMap_ = [[[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Sections" ofType:@"plist"]] autorelease];
@@ -10140,6 +10102,10 @@ int main(int argc, char *argv[]) {
     // XXX: this timeout might be important :(
     //_config->Set("Acquire::http::Timeout", 15);
 
+    int64_t usermem(0);
+    size = sizeof(usermem);
+    if (sysctlbyname("hw.usermem", &usermem, &size, NULL, 0) == -1)
+        usermem = 0;
     _config->Set("Acquire::http::MaxParallel", usermem >= 384 * 1024 * 1024 ? 16 : 3);
 
     mkdir([Cache("archives") UTF8String], 0755);