mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
Updates for changes to IANA time zone data.
This commit is contained in:
parent
7072a38eb3
commit
46d19b5dd5
5 changed files with 50 additions and 25 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,8 +1,20 @@
|
|||
2024-12-31 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSTimeZone.m: Add GNUSTEP_BUILTIN_TZ environment variable to
|
||||
force the use of the IANA standard based time zone files we provide
|
||||
in the distribution rather than the system supplied time zone data.
|
||||
This allows us to standardise test behavior across different systems.
|
||||
* Tests/base/NSCalendarDate/TestInfo: set GNUSTEP_BUILTIN_TZ=1
|
||||
* Tests/base/NSCalendarDate/test02.m: Change from using the MET zone
|
||||
to using CET for tests since the IANA data has changed to make MET
|
||||
behave aas CET.
|
||||
* Tests/base/NSTimeZone/TestInfo: set GNUSTEP_BUILTIN_TZ=1
|
||||
|
||||
2024-11-29 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSURLProtocol.m: fix leaks due to retain loops.
|
||||
* Source/Additions/NSObject+GNUstepBase.m: fix issues in new
|
||||
-trackOownership mechanism to log tracked instances at exist and to
|
||||
-trackOwnership mechanism to log tracked instances at exist and to
|
||||
handle cases where we track instances of a class and instances of
|
||||
its subclasses.
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
Time zone names can be different from system to system, but usually
|
||||
the user has already set up his timezone independant of GNUstep, so we
|
||||
should respect that information.
|
||||
For testing purposes, the GNUSTEP_BUILTIN_TZ environment variable can
|
||||
be set to force the system independent data to be used.
|
||||
|
||||
We do not use a dictionary for storing time zones, since such a
|
||||
dictionary would be VERY large (~500K). And we would have to use a
|
||||
|
@ -2500,17 +2502,23 @@ static NSString *zoneDirs[] = {
|
|||
}
|
||||
GS_MUTEX_UNLOCK(zone_mutex);
|
||||
}
|
||||
/* Use the system zone info if possible, otherwise, use our installed
|
||||
info. */
|
||||
if (tzdir && [[NSFileManager defaultManager] fileExistsAtPath:
|
||||
[tzdir stringByAppendingPathComponent: name] isDirectory: &isDir] == YES
|
||||
&& isDir == NO)
|
||||
|
||||
if (NO == [[[[NSProcessInfo processInfo] environment]
|
||||
objectForKey: @"GNUSTEP_BUILTIN_TZ"] boolValue])
|
||||
{
|
||||
dir = tzdir;
|
||||
/* Use the system zone info if possible, otherwise, use our installed
|
||||
* info.
|
||||
*/
|
||||
if (tzdir && [[NSFileManager defaultManager] fileExistsAtPath:
|
||||
[tzdir stringByAppendingPathComponent: name] isDirectory: &isDir]
|
||||
&& isDir == NO)
|
||||
{
|
||||
dir = tzdir;
|
||||
}
|
||||
}
|
||||
if (dir == nil)
|
||||
{
|
||||
dir = _time_zone_path (ZONES_DIR, nil);
|
||||
dir = _time_zone_path(ZONES_DIR, nil);
|
||||
}
|
||||
return [dir stringByAppendingPathComponent: name];
|
||||
}
|
||||
|
@ -3065,7 +3073,7 @@ getTypeInfo(NSTimeInterval since, GSTimeZone *zone)
|
|||
|
||||
NS_DURING
|
||||
{
|
||||
size_t nread;
|
||||
size_t nread;
|
||||
union input_buffer *up;
|
||||
|
||||
lsp = malloc(sizeof(*lsp));
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# On unix systems force testing using our inbuilt time zone data.
|
||||
export GNUSTEP_BUILTIN_TZ=1
|
|
@ -73,25 +73,25 @@ int main()
|
|||
[tmpArray addObject: @"PM"];
|
||||
[myLocale setObject: tmpArray forKey: NSAMPMDesignation];
|
||||
|
||||
tz = [NSTimeZone timeZoneWithName: @"MET"];
|
||||
PASS_EQUAL([tz name], @"MET", "got time zone for dates")
|
||||
tz = [NSTimeZone timeZoneWithName: @"CET"];
|
||||
PASS_EQUAL([tz name], @"CET", "got time zone for dates")
|
||||
|
||||
myBirthday = [NSCalendarDate dateWithYear: 1974
|
||||
month: 11
|
||||
day: 20
|
||||
hour: 13
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: tz];
|
||||
month: 11
|
||||
day: 20
|
||||
hour: 13
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: tz];
|
||||
PASS_EQUAL([myBirthday timeZone], tz, "myBirthday has expected time zone")
|
||||
|
||||
anotherDay = [NSCalendarDate dateWithYear: 1974
|
||||
month: 1
|
||||
day: 2
|
||||
hour: 3
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: tz];
|
||||
month: 1
|
||||
day: 2
|
||||
hour: 3
|
||||
minute: 0
|
||||
second: 0
|
||||
timeZone: tz];
|
||||
PASS_EQUAL([anotherDay timeZone], tz, "anotherDay has expected time zone")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%%"
|
||||
|
@ -176,7 +176,7 @@ int main()
|
|||
|
||||
PASS_EQUAL([myBirthday
|
||||
descriptionWithCalendarFormat: @"%Z" locale: myLocale],
|
||||
@"MET", "%%Z format works in description")
|
||||
@"CET", "%%Z format works in description")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%z"
|
||||
locale: myLocale] isEqualToString: @"+0100"],
|
||||
|
@ -200,7 +200,7 @@ int main()
|
|||
|
||||
PASS_EQUAL([myBirthday
|
||||
descriptionWithCalendarFormat: @"%H:%M (%Z)" locale: myLocale],
|
||||
@"13:00 (MET)", "%%H%%M format works in description")
|
||||
@"13:00 (CET)", "%%H%%M format works in description")
|
||||
|
||||
PASS([[myBirthday descriptionWithCalendarFormat: @"%R"
|
||||
locale: myLocale] isEqualToString: @"13:00"],
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# On unix systems force testing using our inbuilt time zone data.
|
||||
export GNUSTEP_BUILTIN_TZ=1
|
||||
|
Loading…
Reference in a new issue