[tz] [PATCH] Fix ‘make check’ problems caused by recent changes

Paul Eggert eggert at cs.ucla.edu
Sat Jun 22 20:56:49 UTC 2019


* Makefile: Fix stray non-ASCII chars in comments.
(check_sorted): Omit tests that duplicate what checktab.awk does.
Discovered when debugging checktab.awk.
* checktab.awk: Don’t complain about special case for Crimea.
---
 Makefile     | 10 ++--------
 checktab.awk |  9 ++++++++-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index d305f68..6816d3b 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ DATAFORM=		main
 LOCALTIME=	GMT
 
 # The POSIXRULES macro controls interpretation of nonstandard and obsolete
-# POSIX-like TZ settings like TZ=’EET-2EEST’ that lack DST transition rules.
+# POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules.
 # In the reference implementation, if you want something other than Eastern
 # United States time as a template for handling these settings, you can
 # change the line below (after finding the timezone you want in the
@@ -58,7 +58,7 @@ LOCALTIME=	GMT
 # Nonempty POSIXRULES is obsolete and should not be relied on, because:
 # * It does not work correctly in popular implementations such as GNU/Linux.
 # * It does not work in the tzdb implementation for timestamps after 2037.
-# * It is incompatible with ’zic -b slim’ if POSIXRULES specifies transitions
+# * It is incompatible with 'zic -b slim' if POSIXRULES specifies transitions
 #   at standard time or UT rather than at local time.
 # In short, software should avoid ruleless settings like TZ='EET-2EEST'
 # and so should not depend on the value of POSIXRULES.
@@ -805,12 +805,6 @@ CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
 check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
 		$(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu
 		$(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu
-		$(AWK) '/^[^#]/ {print $$1}' iso3166.tab | LC_ALL=C sort -cu
-		$(AWK) '/^[^#]/ {print $$1}' zone.tab | LC_ALL=C sort -c
-		$(AWK) '/^[^#]/ {print substr($$0, 1, 2)}' zone1970.tab | \
-		  LC_ALL=C sort -c
-		$(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
-		  LC_ALL=C sort -cu
 		touch $@
 
 check_links:	checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
diff --git a/checktab.awk b/checktab.awk
index 393ab19..ec145b5 100644
--- a/checktab.awk
+++ b/checktab.awk
@@ -63,12 +63,19 @@ BEGIN {
 		coordinates = $2
 		tz = $3
 		comments = $4
-		if (cc < cc0) {
+
+		# Don't complain about a special case for Crimea in zone.tab.
+		# FIXME: zone.tab should be removed, since it is obsolete.
+		# Or at least put just "XX" in its country-code column.
+		if (cc < cc0 \
+		    && !(zone_table == "zone.tab" \
+			 && tz0 == "Europe/Simferopol")) {
 			printf "%s:%d: country code '%s' is out of order\n", \
 				zone_table, zone_NR, cc >>"/dev/stderr"
 			status = 1
 		}
 		cc0 = cc
+		tz0 = tz
 		tztab[tz] = 1
 		tz2comments[tz] = comments
 		tz2NR[tz] = zone_NR
-- 
2.21.0



More information about the tz mailing list