>From 8e3a0f8136ded9ae72b583f56d540db59a16f4fd Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sat, 19 Jan 2019 13:42:49 -0800
Subject: [PROPOSED] Improve doc for rule interpretation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This was inspired by Arthur David Olson���s explanation in:
https://mm.icann.org/pipermail/tz/2019-January/027402.html
* Makefile (POSIXRULES): Improve comments about rules.
Remove now-obsolete comment about POSIX and New York.
* zic.8: Give a ruleless TZ example.  Add a "FILES" section header.
Say that a zone or continuation line defaults to standard time.
---
 Makefile |  7 +++----
 zic.8    | 18 ++++++++++++++++--
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index b88eca4..1e0a5e4 100644
--- a/Makefile
+++ b/Makefile
@@ -36,11 +36,11 @@ DATAFORM=		main
 LOCALTIME=	GMT
 
 # If you want something other than Eastern United States time as a template
-# for handling POSIX-style timezone environment variables,
+# for handling ruleless POSIX-style timezone environment variables,
 # change the line below (after finding the timezone you want in the
 # one of the $(TDATA) source files, or adding it to a source file).
-# When a POSIX-style environment variable is handled, the rules in the
-# template file are used to determine "spring forward" and "fall back" days and
+# A ruleless environment setting like TZ='CST6CDT' uses the rules in the
+# template file to determine "spring forward" and "fall back" days and
 # times; the environment variable itself specifies UT offsets of standard and
 # daylight saving time.
 # Alternatively, if you discover you've got the wrong timezone, you can just
@@ -49,7 +49,6 @@ LOCALTIME=	GMT
 # Use the command
 #	make zonenames
 # to get a list of the values you can use for POSIXRULES.
-# If you want POSIX compatibility, use "America/New_York".
 
 POSIXRULES=	America/New_York
 
diff --git a/zic.8 b/zic.8
index ac85e46..590e88a 100644
--- a/zic.8
+++ b/zic.8
@@ -63,7 +63,7 @@ Link	\fItimezone\fP		localtime
 Use
 .IR timezone 's
 rules when handling POSIX-format
-timezone environment variables.
+TZ strings like "CST6CDT" that lack transition rules.
 .B zic
 will act as if the input contained a link line of the form
 .sp
@@ -102,7 +102,7 @@ prohibit this.
 .PP
 The output file does not contain all the information about the
 long-term future of a timezone, because the future cannot be summarized as
-an extended POSIX TZ string.  For example, as of 2013 this problem
+an extended POSIX TZ string.  For example, as of 2019 this problem
 occurs for Iran's daylight-saving rules for the predicted future, as
 these rules are based on the Iranian calendar, which cannot be
 represented.
@@ -130,6 +130,10 @@ or that starts with
 Limit time values stored in output files to values that are the same
 whether they're taken to be signed or unsigned.
 You can use this option to generate SVVS-compatible files.
+.SH FILES
+Input files use the format described in this section; output files use
+.IR tzfile (5)
+format.
 .PP
 Input files should be text files, that is, they should be a series of
 zero or more lines, each ending in a newline byte and containing at
@@ -457,6 +461,16 @@ continuation.
 .PP
 If a zone changes at the same instant that a rule would otherwise take
 effect in the earlier zone or continuation line, the rule is ignored.
+A zone or continuation line
+.I L
+with a named rule set starts with standard time by default:
+that is, any of
+.IR L 's
+timestamps preceding
+.IR L 's
+earliest rule use the rule in effect after
+.IR L 's
+first transition into standard time.
 In a single zone it is an error if two rules take effect at the same
 instant, or if two zone changes take effect at the same instant.
 .PP
-- 
2.17.1

