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 +meta-information
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. -zefram