git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37046 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2013-09-06 09:21:18 +00:00
parent 4df131cfc5
commit bc950cb9dd
2 changed files with 35 additions and 25 deletions

View file

@ -1803,7 +1803,6 @@ static BOOL isPlistObject(id o)
{
NSEnumerator *enumerator;
NSString *domainName;
NSFileManager *mgr;
haveChange = [self _readDefaults];
if (YES == haveChange)
@ -1811,32 +1810,37 @@ static BOOL isPlistObject(id o)
DESTROY(_dictionaryRep);
}
mgr = [NSFileManager defaultManager];
if (_changedDomains != nil)
{
haveChange = YES;
if (_changedDomains != nil && NO == [self _readOnly])
{
GSPersistentDomain *domain;
if (NO == [self _readOnly])
{
GSPersistentDomain *domain;
NSFileManager *mgr;
enumerator = [_changedDomains objectEnumerator];
DESTROY(_changedDomains); // Retained by enumerator.
while ((domainName = [enumerator nextObject]) != nil)
{
domain = [_persDomains objectForKey: domainName];
if (domain != nil) // Domain was added or changed
{
[domain synchronize];
}
else // Domain was removed
{
NSString *path;
mgr = [NSFileManager defaultManager];
enumerator = [_changedDomains objectEnumerator];
DESTROY(_changedDomains); // Retained by enumerator.
while ((domainName = [enumerator nextObject]) != nil)
{
domain = [_persDomains objectForKey: domainName];
if (domain != nil) // Domain was added or changed
{
[domain synchronize];
}
else // Domain was removed
{
NSString *path;
path = [[_defaultsDatabase
stringByAppendingPathComponent: domainName]
stringByAppendingPathExtension: @"plist"];
[mgr removeFileAtPath: path handler: nil];
}
}
}
path = [[_defaultsDatabase
stringByAppendingPathComponent: domainName]
stringByAppendingPathExtension: @"plist"];
[mgr removeFileAtPath: path handler: nil];
}
}
}
}
if (YES == haveChange)
{