]>
git.madduck.net Git - etc/awesome.git/blobdiff - luatz/tzfile.lua
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
local function read_tz ( fd )
assert ( fd:read(4) == "TZif" , "Invalid TZ file" )
local version = assert ( fd:read(1) )
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" )
local MIN_TIME = -2^32+1
assert ( assert ( fd:read(15) ) == fifteen_nulls , "Expected 15 nulls" )
local abbreviations = assert ( fd:read ( tzh_charcnt ) )
local abbreviations = assert ( fd:read ( tzh_charcnt ) )
- local leap_seconds = { }
+ local leap_seconds = { } -- luacheck: ignore 241
for i=1, tzh_leapcnt do
leap_seconds [ i ] = {
offset = assert ( read_int32be ( fd ) ) ;
for i=1, tzh_leapcnt do
leap_seconds [ i ] = {
offset = assert ( read_int32be ( 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.
]]
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
assert ( assert ( fd:read(15) ) == fifteen_nulls , "Expected 15 nulls" )
MIN_TIME = -2^64+1
[0] = {
transition_time = MIN_TIME ;
info = ttinfos [ first ] ;
[0] = {
transition_time = MIN_TIME ;
info = ttinfos [ first ] ;