[tz] version information in tz binary file?

Zefram zefram at fysh.org
Tue Sep 10 12:13:25 UTC 2013

Paul Eggert wrote:
>+Also, for version-3-format time zone files, the version-2 header and
>+data are optionally followed by a section containing auxiliary

Version-1 and version-2 tzfile formats have the somewhat-useful feature
of being self-delimiting: you can read up to the end of the tzfile and
no further without requiring lookahead.  It would be wise for version 3
to retain this feature.  So the aux-data section shouldn't be optional,
and should have an explicit terminator.

>+                         newline-terminated byte strings,

Using newlines and an escaping system is unnecessarily baroque for a
binary file format.  I suggest NUL termination and no escaping.

Taking both of these changes together, the documentation would be:

    For version-3 format tzfiles, the version-2 data is followed by a
    section containing auxiliary meta-information that is not needed to
    process time stamps.  This section consists of zero or more name-value
    strings, followed by a final NUL.  Each name-value string consists
    of a name, "=", value, and terminating NUL.  Names consist of ASCII
    letters, digits and underscores, and start with a letter; duplicate
    names are not allowed.  Two common names are "name", the Zone name
    for the data, and "version", the version number of the database from
    which the data came.  Values consist of any bytes except NUL.


More information about the tz mailing list