X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=OSX%2FPrefsReader.m;h=4044280294aeb2fb07158b1ff2829aab25fce3f5;hp=97c227d6669485aa9290cf696221be7815c12357;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hpb=dba664f31aa87285db4d76cf8c5e66335299703a diff --git a/OSX/PrefsReader.m b/OSX/PrefsReader.m index 97c227d6..40442802 100644 --- a/OSX/PrefsReader.m +++ b/OSX/PrefsReader.m @@ -312,7 +312,7 @@ initialValues:defsdict]; globalDefaultsController = [[NSUserDefaultsController alloc] initWithDefaults:globalDefaults - initialValues:defsdict]; + initialValues:UPDATER_DEFAULTS]; # else // USE_IPHONE userDefaultsController = [userDefaults retain]; globalDefaultsController = [userDefaults retain]; @@ -411,24 +411,33 @@ - (NSObject *) getObjectResource: (const char *) name { - // First look in userDefaults, then in globalDefaults. - for (int globalp = 0; globalp <= 1; globalp++) { - const char *name2 = name; - while (1) { - NSString *key = [self makeCKey:name2]; - NSObject *obj = [(globalp ? globalDefaults : userDefaults) - objectForKey:key]; - if (obj) - return obj; - - // If key is "foo.bar.baz", check "foo.bar.baz", "bar.baz", and "baz". - // - const char *dot = strchr (name2, '.'); - if (dot && dot[1]) - name2 = dot + 1; - else - break; - } + // Only look in globalDefaults for updater preferences. + + static NSDictionary *updaterDefaults; + if (!updaterDefaults) { + updaterDefaults = UPDATER_DEFAULTS; + [updaterDefaults retain]; + } + + NSUserDefaults *defaults = + [updaterDefaults objectForKey:[NSString stringWithUTF8String:name]] ? + globalDefaults : + userDefaults; + + const char *name2 = name; + while (1) { + NSString *key = [self makeCKey:name2]; + NSObject *obj = [defaults objectForKey:key]; + if (obj) + return obj; + + // If key is "foo.bar.baz", check "foo.bar.baz", "bar.baz", and "baz". + // + const char *dot = strchr (name2, '.'); + if (dot && dot[1]) + name2 = dot + 1; + else + break; } return NULL; }