summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2017-03-03 19:06:54 -0800
committerJay Freeman (saurik) <saurik@saurik.com>2017-03-03 19:06:54 -0800
commitf3454874c6097225d806fb2fc9f4fb9e19de6abe (patch)
tree2bad1cf620b830fff7dcd87431176e3cd92cdecd
parente65eba85e36a518ccad605c715a88b4ee59ce439 (diff)
Trial move some key global variables into CyteKit.
-rw-r--r--CyteKit/CyteKit.h1
-rw-r--r--CyteKit/extern.h30
-rw-r--r--CyteKit/extern.mm42
-rw-r--r--MobileCydia.mm17
4 files changed, 75 insertions, 15 deletions
diff --git a/CyteKit/CyteKit.h b/CyteKit/CyteKit.h
index 3edcc88..6dd0479 100644
--- a/CyteKit/CyteKit.h
+++ b/CyteKit/CyteKit.h
@@ -32,6 +32,7 @@
#include "CyteKit/WebViewTableViewCell.h"
#include "CyteKit/countByEnumeratingWithState.h"
+#include "CyteKit/extern.h"
#include "CyteKit/stringWithUTF8Bytes.h"
#include "CyteKit/webScriptObjectInContext.h"
diff --git a/CyteKit/extern.h b/CyteKit/extern.h
new file mode 100644
index 0000000..c7bc270
--- /dev/null
+++ b/CyteKit/extern.h
@@ -0,0 +1,30 @@
+/* Cydia - iPhone UIKit Front-End for Debian APT
+ * Copyright (C) 2008-2015 Jay Freeman (saurik)
+*/
+
+/* GNU General Public License, Version 3 {{{ */
+/*
+ * Cydia is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Cydia is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Cydia. If not, see <http://www.gnu.org/licenses/>.
+**/
+/* }}} */
+
+#ifndef CyteKit_extern_H
+#define CyteKit_extern_H
+
+#include <CoreGraphics/CoreGraphics.h>
+
+extern bool IsWildcat_;
+extern CGFloat ScreenScale_;
+
+#endif//CyteKit_extern_H
diff --git a/CyteKit/extern.mm b/CyteKit/extern.mm
new file mode 100644
index 0000000..c1dc806
--- /dev/null
+++ b/CyteKit/extern.mm
@@ -0,0 +1,42 @@
+/* Cydia - iPhone UIKit Front-End for Debian APT
+ * Copyright (C) 2008-2015 Jay Freeman (saurik)
+*/
+
+/* GNU General Public License, Version 3 {{{ */
+/*
+ * Cydia is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Cydia is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Cydia. If not, see <http://www.gnu.org/licenses/>.
+**/
+/* }}} */
+
+#include <CyteKit/extern.h>
+#include <UIKit/UIKit.h>
+
+bool IsWildcat_;
+CGFloat ScreenScale_;
+
+__attribute__((__constructor__))
+void CyteKit_extern() {
+ UIScreen *screen([UIScreen mainScreen]);
+ if ([screen respondsToSelector:@selector(scale)])
+ ScreenScale_ = [screen scale];
+ else
+ ScreenScale_ = 1;
+
+ UIDevice *device([UIDevice currentDevice]);
+ if ([device respondsToSelector:@selector(userInterfaceIdiom)]) {
+ UIUserInterfaceIdiom idiom([device userInterfaceIdiom]);
+ if (idiom == UIUserInterfaceIdiomPad)
+ IsWildcat_ = true;
+ }
+}
diff --git a/MobileCydia.mm b/MobileCydia.mm
index a16f194..d6ef9c9 100644
--- a/MobileCydia.mm
+++ b/MobileCydia.mm
@@ -735,8 +735,6 @@ _H<NSMutableDictionary> Sources_;
static _transient NSNumber *Version_;
static time_t now_;
-bool IsWildcat_;
-CGFloat ScreenScale_;
static NSString *Idiom_;
static _H<NSString> Firmware_;
static NSString *Major_;
@@ -9979,25 +9977,14 @@ int main(int argc, char *argv[]) {
UpdateExternalStatus(0);
- UIScreen *screen([UIScreen mainScreen]);
- if ([screen respondsToSelector:@selector(scale)])
- ScreenScale_ = [screen scale];
- else
- ScreenScale_ = 1;
-
- UIDevice *device([UIDevice currentDevice]);
- if ([device respondsToSelector:@selector(userInterfaceIdiom)]) {
- UIUserInterfaceIdiom idiom([device userInterfaceIdiom]);
- if (idiom == UIUserInterfaceIdiomPad)
- IsWildcat_ = true;
- }
-
Idiom_ = IsWildcat_ ? @"ipad" : @"iphone";
RegEx pattern("([0-9]+\\.[0-9]+).*");
+ UIDevice *device([UIDevice currentDevice]);
if (pattern([device systemVersion]))
Firmware_ = pattern[1];
+
if (pattern(Cydia_))
Major_ = pattern[1];