git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14608 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2002-09-30 17:14:51 +00:00
parent bddea4dcc2
commit a8955ba8c1

View file

@ -321,6 +321,8 @@ decode (const void *ptr)
if ([name isEqual: @"NSLocalTimeZone"]) if ([name isEqual: @"NSLocalTimeZone"])
{ {
zone = RETAIN(localTimeZone); zone = RETAIN(localTimeZone);
DESTROY(self);
return zone;
} }
/* /*
@ -469,6 +471,11 @@ decode (const void *ptr)
return [[NSTimeZoneClass defaultTimeZone] timeZoneDetailForDate: date]; return [[NSTimeZoneClass defaultTimeZone] timeZoneDetailForDate: date];
} }
- (NSString*) timeZoneName
{
return [[NSTimeZoneClass defaultTimeZone] timeZoneName];
}
@end @end
@implementation NSConcreteAbsoluteTimeZone @implementation NSConcreteAbsoluteTimeZone
@ -860,14 +867,25 @@ static NSMapTable *absolutes = 0;
*/ */
+ (void) setDefaultTimeZone: (NSTimeZone*)aTimeZone + (void) setDefaultTimeZone: (NSTimeZone*)aTimeZone
{ {
if (zone_mutex != nil) if (aTimeZone != defaultTimeZone)
{ {
[zone_mutex lock]; /*
} * We can't make the localTimeZone the default since that would
ASSIGN(defaultTimeZone, aTimeZone); * cause recursion ...
if (zone_mutex != nil) */
{ if (aTimeZone == localTimeZone)
[zone_mutex unlock]; {
aTimeZone = [self systemTimeZone];
}
if (zone_mutex != nil)
{
[zone_mutex lock];
}
ASSIGN(defaultTimeZone, aTimeZone);
if (zone_mutex != nil)
{
[zone_mutex unlock];
}
} }
} }
@ -1011,7 +1029,7 @@ static NSMapTable *absolutes = 0;
NSTimeZone *zone; NSTimeZone *zone;
zone = [self timeZoneWithName: [[self abbreviationDictionary] zone = [self timeZoneWithName: [[self abbreviationDictionary]
objectForKey: abbreviation]]; objectForKey: abbreviation] data: nil];
return zone; return zone;
} }
@ -1022,7 +1040,7 @@ static NSMapTable *absolutes = 0;
{ {
NSTimeZone *zone; NSTimeZone *zone;
zone = [defaultPlaceholderTimeZone initWithName: aTimeZoneName]; zone = [defaultPlaceholderTimeZone initWithName: aTimeZoneName data: nil];
return AUTORELEASE(zone); return AUTORELEASE(zone);
} }
@ -1031,8 +1049,10 @@ static NSMapTable *absolutes = 0;
*/ */
+ (NSTimeZone*) timeZoneWithName: (NSString*)name data: (NSData*)data + (NSTimeZone*) timeZoneWithName: (NSString*)name data: (NSData*)data
{ {
[self notImplemented: _cmd]; NSTimeZone *zone;
return nil;
zone = [defaultPlaceholderTimeZone initWithName: name data: nil];
return AUTORELEASE(zone);
} }
/** /**
@ -1081,7 +1101,7 @@ static NSMapTable *absolutes = 0;
- (id) init - (id) init
{ {
return [self initWithName: @"NSLocalTimeZone"]; return [self initWithName: @"NSLocalTimeZone" data: nil];
} }
- (id) initWithCoder: (NSCoder*)aDecoder - (id) initWithCoder: (NSCoder*)aDecoder
@ -1089,7 +1109,7 @@ static NSMapTable *absolutes = 0;
NSString *name; NSString *name;
name = [aDecoder decodeObject]; name = [aDecoder decodeObject];
self = [self initWithName: name]; self = [self initWithName: name data: nil];
return self; return self;
} }