This was experimental, and it appears that the tzwinnow approach will be better. We need to cut a new stable release soon, and the -t option might make it harder to integrate tzwinnow later, so let's omit -t for now. * .gitignore: Remove time.tab. * Makefile (ZONETABTYPE): Remove. All uses removed. (time.tab): Remove. All uses removed. * Theory: Omit discussion of time.tab. * zone-time.awk: Remove. * tzselect.8: Omit -t and time.tab. * tzselect.ksh (ZONETABTYPE): Remove. All uses removed. Remove -t ZONETABTYPE option. * zone.tab: Restore first comment line, since there's no longer a need to distinguish this file from time.tab. --- .gitignore | 1 - Makefile | 22 ++++------------------ Theory | 10 +++------- tzselect.8 | 51 +-------------------------------------------------- tzselect.ksh | 13 +++---------- zone-time.awk | 34 ---------------------------------- zone.tab | 2 +- 7 files changed, 12 insertions(+), 121 deletions(-) delete mode 100644 zone-time.awk diff --git a/.gitignore b/.gitignore index 18dbbcc..2b93d4b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ ChangeLog date leapseconds -time.tab tzselect version.h yearistype diff --git a/Makefile b/Makefile index eb0ea59..9052eeb 100644 --- a/Makefile +++ b/Makefile @@ -40,15 +40,6 @@ LOCALTIME= GMT POSIXRULES= America/New_York -# Default time zone table type for 'tzselect'. See tzselect.8 for details. -# Possible values are: -# 'time' - for a smaller time zone table -# 'zone' - for a backward compatible time zone table; it contains -# alternative TZ values present for compatibility with older versions of -# this software. - -ZONETABTYPE= zone - # Also see TZDEFRULESTRING below, which takes effect only # if the time zone files cannot be accessed. @@ -329,11 +320,11 @@ YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward NDATA= systemv factory SDATA= solar87 solar88 solar89 TDATA= $(YDATA) $(NDATA) $(SDATA) -TABDATA= iso3166.tab time.tab zone.tab +TABDATA= iso3166.tab zone.tab DATA= $(YDATA) $(NDATA) $(SDATA) $(TABDATA) \ leap-seconds.list yearistype.sh WEB_PAGES= tz-art.htm tz-link.htm -AWK_SCRIPTS= checktab.awk leapseconds.awk zone-time.awk +AWK_SCRIPTS= checktab.awk leapseconds.awk MISC= usno1988 usno1989 usno1989a usno1995 usno1997 usno1998 \ $(WEB_PAGES) $(AWK_SCRIPTS) workman.sh \ zoneinfo2tdf.pl @@ -352,8 +343,8 @@ install: all $(DATA) $(REDO) $(DESTDIR)$(TZLIB) $(MANS) $(ZIC) -y $(YEARISTYPE) \ -d $(DESTDIR)$(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES) -rm -f $(DESTDIR)$(TZDIR)/iso3166.tab \ - $(DESTDIR)$(TZDIR)/time.tab $(DESTDIR)$(TZDIR)/zone.tab - cp iso3166.tab time.tab zone.tab $(DESTDIR)$(TZDIR)/. + $(DESTDIR)$(TZDIR)/zone.tab + cp iso3166.tab zone.tab $(DESTDIR)$(TZDIR)/. -mkdir $(DESTDIR)$(TOPDIR) $(DESTDIR)$(ETCDIR) cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/. -mkdir $(DESTDIR)$(TOPDIR) $(DESTDIR)$(MANDIR) \ @@ -430,9 +421,6 @@ posix_right: posix_only leapseconds zones: $(REDO) -time.tab: $(YDATA) zone.tab zone-time.awk - $(AWK) -f zone-time.awk $(YDATA) >$@ - $(DESTDIR)$(TZLIB): $(LIBOBJS) -mkdir -p $(DESTDIR)$(TOPDIR) $(DESTDIR)$(LIBDIR) ar ru $@ $(LIBOBJS) @@ -450,7 +438,6 @@ tzselect: tzselect.ksh -e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \ -e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \ -e 's|\(TZVERSION\)=.*|\1=$(VERSION)|' \ - -e 's|^\(ZONETABTYPE\)=.*|\1=$(ZONETABTYPE)|' \ <$? >$@ chmod +x $@ @@ -467,7 +454,6 @@ check_web: $(WEB_PAGES) clean_misc: rm -f core *.o *.out \ - time.tab \ date leapseconds tzselect version.h zdump zic yearistype clean: clean_misc rm -f -r tzpublic diff --git a/Theory b/Theory index 13b5565..0c1ffdd 100644 --- a/Theory +++ b/Theory @@ -357,13 +357,9 @@ in decreasing order of importance: The file 'zone.tab' lists geographical locations used to name time zone rule files. It is intended to be an exhaustive list of names for geographic regions as described above; this is a subset of the -Zone entries in the data. The file 'time.tab' is a simplified -version of 'zone.tab', the intent being that entries are coalesced -if their time stamps agree after 1970, which means the entries are -distinct in 'zone.tab' only because of the abovementioned political -constraints. Although a 'zone.tab' location's longitude corresponds -to its LMT offset with one hour for every 15 degrees east longitude, -this relationship is not exact and is not true for 'time.tab'. +names in the data. Although a 'zone.tab' location's longitude +corresponds to its LMT offset with one hour for every 15 degrees east +longitude, this relationship is not exact. Older versions of this package used a different naming scheme, and these older names are still supported. diff --git a/tzselect.8 b/tzselect.8 index 39436ae..1dd721a 100644 --- a/tzselect.8 +++ b/tzselect.8 @@ -10,9 +10,6 @@ tzselect \- select a time zone .B \-n .I limit ] [ -.B \-t -.I zonetabtype -] [ .B \-\-help ] [ .B \-\-version @@ -73,52 +70,8 @@ When is used, display the closest .I limit locations (default 10). -.TP -.BI "\-t " zonetabtype -Make selections from the time zone table of type -.I zonetabtype. -Possible -.I zonetabtype -values include: -.RS -.TP -.B time -A time zone table with a smaller set of zone names. -.TP -.B zone -A time zone table that also contains alternative zone names, for -backward compatibility with older versions of this software. The -alternative names are not needed for proper operation of time stamps; -they are present only to avoid surprises with people who are -accustomed to the old names. These alternative names arose from -political issues that are outside the scope of -.BR tzselect . .PP -For example, both tables have entries for countries like -Bosnia, Croatia, and Serbia, which are in a zone where the clocks -have all agreed since 1970. Although the -.B time -table lists "Europe/Belgrade" for this zone wherever it occurs, the -.B zone -table instead lists the names "Europe/Sarajevo", "Europe/Zagreb", -etc. under Bosnia, Croatia, etc. This means that the -.B "\-t\ time" -option causes -.B tzselect -to generate "Europe/Belgrade" for this zone, whereas -.B "\-t\ zone" -causes it to generate different names depending on the country, -names that are equivalent in effect to "Europe/Belgrade". -.PP -The default -.I zonetabtype -is system-dependent, so applications that care about the set of -names that -.B tzselect -generates should use the -.B "\-t" -option. Regardless of what options are used, applications should not -assume that +Applications should not assume that .BR tzselect 's output matches the user's political preferences. .RE @@ -144,8 +97,6 @@ Name of the directory containing time zone data files (default: \f2TZDIR\fP\f3/iso3166.tab\fP Table of ISO 3166 2-letter country codes and country names. .TP -\f2TZDIR\fP\f3/time.tab\fP -.TP \f2TZDIR\fP\f3/zone.tab\fP Tables of country codes, latitude and longitude, zone names, and descriptive comments. diff --git a/tzselect.ksh b/tzselect.ksh index 3e7788e..1934dd0 100644 --- a/tzselect.ksh +++ b/tzselect.ksh @@ -3,7 +3,6 @@ PKGVERSION='(tzcode) ' TZVERSION=see_Makefile REPORT_BUGS_TO=tz@iana.org -ZONETABTYPE=zone # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. @@ -44,7 +43,7 @@ ZONETABTYPE=zone coord= location_limit=10 -usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] [-t ZONETABTYPE] +usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] Select a time zone interactively. Options: @@ -60,10 +59,6 @@ Options: -n LIMIT Display at most LIMIT locations when -c is used (default $location_limit). - -t ZONETABTYPE - Use time zone table ZONETABTYPE. ZONETABTYPE should be one of - 'time' or 'zone'. - --version Output version information. @@ -72,15 +67,13 @@ Options: Report bugs to $REPORT_BUGS_TO." -while getopts c:n:t:-: opt +while getopts c:n:-: opt do case $opt$OPTARG in c*) coord=$OPTARG ;; n*) location_limit=$OPTARG ;; - t*) - ZONETABTYPE=$OPTARG ;; -help) exec echo "$usage" ;; -version) @@ -100,7 +93,7 @@ esac # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab -TZ_ZONE_TABLE=$TZDIR/$ZONETABTYPE.tab +TZ_ZONE_TABLE=$TZDIR/zone.tab for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE do <$f || { diff --git a/zone-time.awk b/zone-time.awk deleted file mode 100644 index 5210c1f..0000000 --- a/zone-time.awk +++ /dev/null @@ -1,34 +0,0 @@ -# Generate 'time.tab' from 'zone.tab'. Standard input should be the zic input. - -# This file is in the public domain. - -# Contributed by Paul Eggert. - -$1 == "Link" { link[$3] = $2 } - -END { - FS = "\t" - while (getline < "zone.tab") { - line = $0 - if (line ~ /^# TZ zone descriptions/) - line = "# TZ zone descriptions, with a smaller set of zone names" - if (line ~ /^# 4. Comments;/) { - print "# Zones can cross country-code boundaries, so the" - print "# location named by column 3 need not lie in the" - print "# locations identified by columns 1 or 2." - } - if (line ~ /^[^#]/) { - code = $1 - target = $3 - while (link[target]) - target = link[target] - if (already_seen[code, target]) - continue - already_seen[code, target] = 1 - line = code "\t" $2 "\t" target - if ($4) - line = line "\t" $4 - } - print line - } -} diff --git a/zone.tab b/zone.tab index 7d4c575..fa4df5f 100644 --- a/zone.tab +++ b/zone.tab @@ -1,4 +1,4 @@ -# TZ zone descriptions, with alternative zone names for backward compatibility +# TZ zone descriptions # # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -- 1.8.1.2