]> git.saurik.com Git - winterboard.git/blobdiff - Library.mm
Just in case, simply don't resource theme backupd.
[winterboard.git] / Library.mm
index 3372ddd69ca105959f1e04033277880404076df0..219f4e7633f5516646ecef1dfec0e1cda0abafd6 100644 (file)
@@ -298,31 +298,29 @@ static NSArray *$useScale$(NSArray *files, bool use = true) {
 
     NSString *idiom(IsWild_ ? @"ipad" : @"iphone");
 
 
     NSString *idiom(IsWild_ ? @"ipad" : @"iphone");
 
-    NSMutableArray *scaled([NSMutableArray arrayWithCapacity:([files count] * 4)]);
+    NSMutableArray *scaled([NSMutableArray arrayWithCapacity:([files count] * 6)]);
 
     for (NSString *file in files) {
         NSString *base([file stringByDeletingPathExtension]);
         NSString *extension([file pathExtension]);
 
 
     for (NSString *file in files) {
         NSString *base([file stringByDeletingPathExtension]);
         NSString *extension([file pathExtension]);
 
-        if (use) {
-            if (Scale_ != 1) {
-                [scaled addObject:[NSString stringWithFormat:@"%@@%ux~%@.%@", base, Scale_, idiom, extension]];
-                [scaled addObject:[NSString stringWithFormat:@"%@@%ux.%@", base, Scale_, extension]];
-            }
-
-            for (unsigned scale(3); scale >= 2; --scale)
-                if (scale != Scale_) {
-                    [scaled addObject:[NSString stringWithFormat:@"%@@%ux~%@.%@", base, scale, idiom, extension]];
-                    [scaled addObject:[NSString stringWithFormat:@"%@@%ux.%@", base, scale, extension]];
-                }
+#define WBScaleImage(scale) \
+    if (scale == 1) { \
+        [scaled addObject:[NSString stringWithFormat:@"%@~%@.%@", base, idiom, extension]]; \
+        [scaled addObject:file]; \
+    } else { \
+        [scaled addObject:[NSString stringWithFormat:@"%@@%ux~%@.%@", base, scale, idiom, extension]]; \
+        [scaled addObject:[NSString stringWithFormat:@"%@@%ux.%@", base, scale, extension]]; \
+    }
 
 
-            [scaled addObject:[NSString stringWithFormat:@"%@~%@.%@", base, idiom, extension]];
+        if (use) {
+            WBScaleImage(Scale_);
 
 
-            // if (!IsWild_) <- support old themes
-            [scaled addObject:file];
+            for (unsigned scale(3); scale >= 1; --scale)
+                if (scale != Scale_)
+                    WBScaleImage(scale);
         } else if ([base hasSuffix: @"@2x"] || [base hasSuffix:@"@3x"]) {
         } else if ([base hasSuffix: @"@2x"] || [base hasSuffix:@"@3x"]) {
-            [scaled addObject:[NSString stringWithFormat:@"%@~%@.%@", base, idiom, extension]];
-            [scaled addObject:file];
+            WBScaleImage(1);
 
             // XXX: this actually can't be used, as the person loading the file doesn't realize that the @2x changed
             /*NSString *rest([base substringWithRange:NSMakeRange(0, [base length] - 3)]);
 
             // XXX: this actually can't be used, as the person loading the file doesn't realize that the @2x changed
             /*NSString *rest([base substringWithRange:NSMakeRange(0, [base length] - 3)]);
@@ -492,7 +490,7 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
 
 @implementation NSBundle (WinterBoard)
 
 
 @implementation NSBundle (WinterBoard)
 
-+ (NSBundle *) wb$bundleWithFile:(NSString *)path {
++ (NSBundle *) _wb$bundleWithFile:(NSString *)path {
     path = [path stringByDeletingLastPathComponent];
     if (path == nil || [path length] == 0 || [path isEqualToString:@"/"])
         return nil;
     path = [path stringByDeletingLastPathComponent];
     if (path == nil || [path length] == 0 || [path isEqualToString:@"/"])
         return nil;
@@ -508,7 +506,7 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
         if ([Manager_ fileExistsAtPath:[path stringByAppendingPathComponent:@"Info.plist"]])
             bundle = [NSBundle bundleWithPath:path];
         if (bundle == nil)
         if ([Manager_ fileExistsAtPath:[path stringByAppendingPathComponent:@"Info.plist"]])
             bundle = [NSBundle bundleWithPath:path];
         if (bundle == nil)
-            bundle = [NSBundle wb$bundleWithFile:path];
+            bundle = [NSBundle _wb$bundleWithFile:path];
         if (Debug_)
             NSLog(@"WB:Debug:PathBundle(%@, %@)", path, bundle);
 
         if (Debug_)
             NSLog(@"WB:Debug:PathBundle(%@, %@)", path, bundle);
 
@@ -520,6 +518,12 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
     return bundle;
 }
 
     return bundle;
 }
 
++ (NSBundle *) wb$bundleWithFile:(NSString *)path {
+    if ([path hasPrefix:@"/Library/Themes"])
+        return nil;
+    return [self _wb$bundleWithFile:path];
+}
+
 @end
 // }}}
 // -[NSString wb$themedPath] {{{
 @end
 // }}}
 // -[NSString wb$themedPath] {{{
@@ -530,9 +534,6 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
 @implementation NSString (WinterBoard)
 
 - (NSString *) wb$themedPath {
 @implementation NSString (WinterBoard)
 
 - (NSString *) wb$themedPath {
-    if ([self hasPrefix:@"/Library/Themes/"])
-        return self;
-
     if (Debug_)
         NSLog(@"WB:Debug:Bypass(\"%@\")", self);
 
     if (Debug_)
         NSLog(@"WB:Debug:Bypass(\"%@\")", self);
 
@@ -2569,6 +2570,7 @@ MSInitialize {
     // }}}
     // Foundation {{{
     if (true) {
     // }}}
     // Foundation {{{
     if (true) {
+        if (![identifier isEqualToString:@"com.apple.backupd"]) // XXX: rethink
         MSHookFunction(CFBundleCopyResourceURL, MSHake(CFBundleCopyResourceURL));
     }
     // }}}
         MSHookFunction(CFBundleCopyResourceURL, MSHake(CFBundleCopyResourceURL));
     }
     // }}}