Commit 64a1da49 authored by Paul Eggert's avatar Paul Eggert

Improve port to NetBSD tzalloc

Problem reported by Valery Ushakov (Bug#30738#13).
* src/editfns.c (tzlookup) [__NetBSD_Version__ < 700000000]:
If tzalloc fails for any reason other than memory exhaustion,
assume it’s because NetBSD 6 does not support tzalloc on
POSIX-format TZ strings, and fall back on tzdb if possible.
parent 711b94c8
......@@ -204,6 +204,18 @@ tzlookup (Lisp_Object zone, bool settz)
invalid_time_zone_specification (zone);
new_tz = tzalloc (zone_string);
#if defined __NetBSD_Version__ && __NetBSD_Version__ < 700000000
/* NetBSD 6 tzalloc mishandles POSIX TZ strings (Bug#30738).
If possible, fall back on tzdb. */
if (!new_tz && errno != ENOMEM && plain_integer
&& XINT (zone) % (60 * 60) == 0)
{
sprintf (tzbuf, "Etc/GMT%+"pI"d", - (XINT (zone) / (60 * 60)));
new_tz = tzalloc (zone_string);
}
#endif
if (!new_tz)
{
if (errno == ENOMEM)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment