From 18bf7fd0b374cd96b46b95265e356e975c3992ea Mon Sep 17 00:00:00 2001 From: daurnimator Date: Wed, 4 Nov 2015 11:00:55 -0600 Subject: [PATCH] luatz/tzfile: Fix support for version 3 files Relevant to #2 Fixes #7 --- luatz/tzfile.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/luatz/tzfile.lua b/luatz/tzfile.lua index d4285c4..4fddddf 100644 --- a/luatz/tzfile.lua +++ b/luatz/tzfile.lua @@ -58,7 +58,7 @@ local fifteen_nulls = ("\0"):rep(15) local function read_tz ( fd ) assert ( fd:read(4) == "TZif" , "Invalid TZ file" ) local version = assert ( fd:read(1) ) - if version == "\0" or version == "2" then + if version == "\0" or version == "2" or version == "3" then local MIN_TIME = -2^32+1 assert ( assert ( fd:read(15) ) == fifteen_nulls , "Expected 15 nulls" ) @@ -117,7 +117,8 @@ local function read_tz ( fd ) For version-2-format timezone files, the above header and data is followed by a second header and data, identical in format except that eight bytes are used for each transition time or leap-second time. ]] - assert ( fd:read(5) == "TZif2" ) + assert(fd:read(4) == "TZif") + assert(fd:read(1) == version) assert ( assert ( fd:read(15) ) == fifteen_nulls , "Expected 15 nulls" ) MIN_TIME = -2^64+1 -- 2.39.5