I object to adding Geneva.

The rule has always been to only add new IDs when they are distinct after Jan 1, 1970. This does not appear to meet that criterion. As a matter of fact, not so long ago some IDs were dropped precisely because they did not meet that criterion.

(If we added any and all IDs without a cutoff date, we would have a disastrous blowup in the number of IDs.)

Mark


On Wed, Jan 14, 2009 at 10:51, Arthur David Olson <olsona@elsie.nci.nih.gov> wrote:
Here are proposed time zone package changes, preceded by a list of files
to be changed and reasons for the changes. If these pass muster,
tzcode2009a.tar.gz and tzdata2009a.tar.tz will appear a week from today
(on an unusual Wednesday since both Monday and Tuesday are leave days for
U. S. federal employees in the Washington, D. C. area).

                               --ado

*       asia
               change Katmandu to Kathmandu

*       backward
               provide Katmandu link

*       europe
               correct Swiss rules; add Europe/Geneva

*       northamerica
               clearer definition of Cuban transitions (no binary change)
               Resolute changes abbreviation (but not time) twice a year

*       strftime.c
               c format warning fix

*       tzselect.ksh
               --help and --version handling

*       zdump.c
               --help and --version handling

*       zic.c
               --help and --version handling
               fix infinite loop caused by overflow/optimization interaction

*       zone.tab
               Change Katmandu to Kathmandu
               Change Resolute from Eastern Time to Eastern Standard Time
               Add Europe/Geneva

diff -r -c old/asia new/asia
*** old/asia    Wed Oct  8 08:35:57 2008
--- new/asia    Wed Jan 14 11:15:49 2009
***************
*** 1,4 ****
! # @(#)asia    8.24
 # <pre>

 # This data is by no means authoritative; if you think you know better,
--- 1,4 ----
! # @(#)asia    8.25
 # <pre>

 # This data is by no means authoritative; if you think you know better,
***************
*** 1474,1480 ****

 # Nepal
 # Zone        NAME            GMTOFF  RULES   FORMAT  [UNTIL]
! Zone  Asia/Katmandu   5:41:16 -       LMT     1920
                       5:30    -       IST     1986
                       5:45    -       NPT     # Nepal Time

--- 1474,1480 ----

 # Nepal
 # Zone        NAME            GMTOFF  RULES   FORMAT  [UNTIL]
! Zone  Asia/Kathmandu  5:41:16 -       LMT     1920
                       5:30    -       IST     1986
                       5:45    -       NPT     # Nepal Time

diff -r -c old/backward new/backward
*** old/backward        Tue Sep  9 22:33:26 2008
--- new/backward        Wed Jan 14 11:15:49 2009
***************
*** 1,4 ****
! # @(#)backward        8.6

 # This file provides links between current names for time zones
 # and their old names.  Many names changed in late 1993.
--- 1,4 ----
! # @(#)backward        8.7

 # This file provides links between current names for time zones
 # and their old names.  Many names changed in late 1993.
***************
*** 24,29 ****
--- 24,30 ----
 Link  Asia/Ashgabat           Asia/Ashkhabad
 Link  Asia/Chongqing          Asia/Chungking
 Link  Asia/Dhaka              Asia/Dacca
+ Link  Asia/Kathmandu          Asia/Katmandu
 Link  Asia/Kolkata            Asia/Calcutta
 Link  Asia/Macau              Asia/Macao
 Link  Asia/Jerusalem          Asia/Tel_Aviv
diff -r -c old/europe new/europe
*** old/europe  Tue Sep  9 22:33:25 2008
--- new/europe  Wed Jan 14 13:37:27 2009
***************
*** 1,4 ****
! # @(#)europe  8.18
 # <pre>

 # This data is by no means authoritative; if you think you know better,
--- 1,4 ----
! # @(#)europe  8.19
 # <pre>

 # This data is by no means authoritative; if you think you know better,
***************
*** 2313,2328 ****
 # mean time in preference to apparent time -- Geneva from 1780 ....
 # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # From Whitman (who writes ``Midnight?''):
! Rule  Swiss   1940    only    -       Nov      2      0:00    1:00    S
! Rule  Swiss   1940    only    -       Dec     31      0:00    0       -
 # From Shanks & Pottenger:
! Rule  Swiss   1941    1942    -       May     Sun>=1  2:00    1:00    S
! Rule  Swiss   1941    1942    -       Oct     Sun>=1  0:00    0       -
 # Zone        NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone  Europe/Zurich   0:34:08 -       LMT     1848 Sep 12
                       0:29:44 -       BMT     1894 Jun # Bern Mean Time
                       1:00    Swiss   CE%sT   1981
                       1:00    EU      CE%sT

 # Turkey

--- 2313,2384 ----
 # mean time in preference to apparent time -- Geneva from 1780 ....
 # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # From Whitman (who writes ``Midnight?''):
! # Rule        Swiss   1940    only    -       Nov      2      0:00    1:00    S
! # Rule        Swiss   1940    only    -       Dec     31      0:00    0       -
 # From Shanks & Pottenger:
! # Rule        Swiss   1941    1942    -       May     Sun>=1  2:00    1:00    S
! # Rule        Swiss   1941    1942    -       Oct     Sun>=1  0:00    0       -
!
! # From Alois Treindl (2008-12-17):
! # I have researched the DST usage in Switzerland during the 1940ies.
! #
! # As I wrote in an earlier message, I suspected the current tzdata values
! # to be wrong. This is now verified.
! #
! # I have found copies of the original ruling by the Swiss Federal
! # government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss
! # federal law collection)...
! #
! # DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am
! # DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am.
! #
! # DST began on Monday, 4 May 1942 at 01:00 am
! # DST ended on Monday, 5 Oct 1942 at 02:00 am
! #
! # There was no DST in 1940, I have checked the law collection carefully.
! # It is also indicated by the fact that the 1942 entry in the law
! # collection points back to 1941 as a reference, but no reference to any
! # other years are made.
! #
! # Newspaper articles I have read in the archives on 6 May 1941 reported
! # about the introduction of DST (Sommerzeit in German) during the previous
! # night as an absolute novelty, because this was the first time that such
! # a thing had happened in Switzerland.
! #
! # I have also checked 1916, because one book source (Gabriel, Traite de
! # l'heure dans le monde) claims that Switzerland had DST in 1916. This is
! # false, no official document could be found. Probably Gabriel got misled
! # by references to Germany, which introduced DST in 1916 for the first time.
! #
! # The tzdata rules for Switzerland must be changed to:
! # Rule  Swiss   1941    1942    -       May     Mon>=1  1:00    1:00    S
! # Rule  Swiss   1941    1942    -       Oct     Mon>=1  2:00    0       -
! #
! # The 1940 rules must be deleted.
! #
! # One further detail for Switzerland, which is probably out of scope for
! # most users of tzdata:
! # The zone file
! # Zone    Europe/Zurich   0:34:08 -       LMT     1848 Sep 12
! #                          0:29:44 -       BMT     1894 Jun #Bern Mean Time
! #                          1:00    Swiss   CE%sT   1981
! #                          1:00    EU      CE%sT
! # describes all of Switzerland correctly, with the exception of
! # the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not
! # follow Bern Mean Time but kept its own local mean time.
! # To represent this, an extra zone would be needed.
!
! # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
! Rule  Swiss   1941    1942    -       May     Mon>=1  1:00    1:00    S
! Rule  Swiss   1941    1942    -       Oct     Mon>=1  2:00    0       -
 # Zone        NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone  Europe/Zurich   0:34:08 -       LMT     1848 Sep 12
                       0:29:44 -       BMT     1894 Jun # Bern Mean Time
                       1:00    Swiss   CE%sT   1981
                       1:00    EU      CE%sT
+ Zone  Europe/Geneva   0:24:56 -       LMT     1894 Jun # avoid GMT
+                       1:00    Swiss   CE%sT   1981
+                       1:00    EU      CE%sT

 # Turkey

diff -r -c old/northamerica new/northamerica
*** old/northamerica    Tue Sep  9 16:05:43 2008
--- new/northamerica    Wed Jan 14 12:32:15 2009
***************
*** 1,4 ****
! # @(#)northamerica    8.24
 # <pre>

 # also includes Central America and the Caribbean
--- 1,4 ----
! # @(#)northamerica    8.26
 # <pre>

 # also includes Central America and the Caribbean
***************
*** 1742,1751 ****
 # The individual that answered the phone confirmed that the clocks did not
 # move at the end of daylight saving on October 29/2006.  He also told me that
 # the clocks did not move this past weekend (March 11/2007)....
- #
- # America/Resolute should use the "Canada" Rule up to October 29/2006.
- # After that it should be fixed on Eastern Standard Time until further notice.

 # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule  NT_YK   1918    only    -       Apr     14      2:00    1:00    D
 Rule  NT_YK   1918    only    -       Oct     27      2:00    0       S
--- 1742,1755 ----
 # The individual that answered the phone confirmed that the clocks did not
 # move at the end of daylight saving on October 29/2006.  He also told me that
 # the clocks did not move this past weekend (March 11/2007)....

+ # From Chris Walton (2008-11-13):
+ # ...the residents of Resolute believe that they are changing "time zones"
+ # twice a year.  In winter months, local time is qualified with "Eastern
+ # Time" which is really "Eastern Standard Time (UTC-5)".  In summer
+ # months, local time is qualified with "Central Time" which is really
+ # "Central Daylight Time (UTC-5)"...
+
 # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule  NT_YK   1918    only    -       Apr     14      2:00    1:00    D
 Rule  NT_YK   1918    only    -       Oct     27      2:00    0       S
***************
*** 1772,1782 ****
                       -6:00   Canada  C%sT    2000 Oct 29 2:00
                       -5:00   Canada  E%sT
 # aka Qausuittuq
 Zone America/Resolute 0       -       zzz     1947 Aug 31 # Resolute founded
                       -6:00   NT_YK   C%sT    2000 Oct 29 2:00
                       -5:00   -       EST     2001 Apr  1 3:00
                       -6:00   Canada  C%sT    2006 Oct 29 2:00
!                       -5:00   -       EST
 # aka Kangiqiniq
 Zone America/Rankin_Inlet 0   -       zzz     1957 # Rankin Inlet founded
                       -6:00   NT_YK   C%sT    2000 Oct 29 2:00
--- 1776,1789 ----
                       -6:00   Canada  C%sT    2000 Oct 29 2:00
                       -5:00   Canada  E%sT
 # aka Qausuittuq
+ # Rule        NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
+ Rule  Resolute 2006   max     -       Nov     Sun>=1  2:00    0       ES
+ Rule  Resolute 2007   max     -       Mar     Sun>=8  2:00    0       CD
 Zone America/Resolute 0       -       zzz     1947 Aug 31 # Resolute founded
                       -6:00   NT_YK   C%sT    2000 Oct 29 2:00
                       -5:00   -       EST     2001 Apr  1 3:00
                       -6:00   Canada  C%sT    2006 Oct 29 2:00
!                       -5:00   Resolute        %sT
 # aka Kangiqiniq
 Zone America/Rankin_Inlet 0   -       zzz     1957 # Rankin Inlet founded
                       -6:00   NT_YK   C%sT    2000 Oct 29 2:00
***************
*** 2280,2286 ****
 Rule  Cuba    1997    only    -       Oct     12      0:00s   0       S
 Rule  Cuba    1998    1999    -       Mar     lastSun 0:00s   1:00    D
 Rule  Cuba    1998    2003    -       Oct     lastSun 0:00s   0       S
! Rule  Cuba    2000    2006    -       Apr     Sun>=1  0:00s   1:00    D
 Rule  Cuba    2006    max     -       Oct     lastSun 0:00s   0       S
 Rule  Cuba    2007    only    -       Mar     Sun>=8  0:00s   1:00    D
 Rule  Cuba    2008    max     -       Mar     Sun>=15 0:00s   1:00    D
--- 2287,2293 ----
 Rule  Cuba    1997    only    -       Oct     12      0:00s   0       S
 Rule  Cuba    1998    1999    -       Mar     lastSun 0:00s   1:00    D
 Rule  Cuba    1998    2003    -       Oct     lastSun 0:00s   0       S
! Rule  Cuba    2000    2004    -       Apr     Sun>=1  0:00s   1:00    D
 Rule  Cuba    2006    max     -       Oct     lastSun 0:00s   0       S
 Rule  Cuba    2007    only    -       Mar     Sun>=8  0:00s   1:00    D
 Rule  Cuba    2008    max     -       Mar     Sun>=15 0:00s   1:00    D
diff -r -c old/strftime.c new/strftime.c
*** old/strftime.c      Mon Sep 15 09:24:42 2008
--- new/strftime.c      Wed Jan 14 12:33:56 2009
***************
*** 1,6 ****
 #ifndef lint
 #ifndef NOID
! static char   elsieid[] = "@(#)strftime.c     8.2";
 /*
 ** Based on the UCB version with the ID appearing below.
 ** This is ANSIish only when "multibyte character == plain character".
--- 1,6 ----
 #ifndef lint
 #ifndef NOID
! static char   elsieid[] = "@(#)strftime.c     8.3";
 /*
 ** Based on the UCB version with the ID appearing below.
 ** This is ANSIish only when "multibyte character == plain character".
***************
*** 216,222 ****
                               {
                               int warn2 = IN_SOME;

!                               pt = _fmt(Locale->c_fmt, t, pt, ptlim, warnp);
                               if (warn2 == IN_ALL)
                                       warn2 = IN_THIS;
                               if (warn2 > *warnp)
--- 216,222 ----
                               {
                               int warn2 = IN_SOME;

!                               pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2);
                               if (warn2 == IN_ALL)
                                       warn2 = IN_THIS;
                               if (warn2 > *warnp)
diff -r -c old/tzselect.ksh new/tzselect.ksh
*** old/tzselect.ksh    Tue Sep  9 22:33:17 2008
--- new/tzselect.ksh    Wed Jan 14 10:56:24 2009
***************
*** 1,6 ****
 #! /bin/ksh

! # '@(#)tzselect.ksh   8.1'

 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
--- 1,6 ----
 #! /bin/ksh

! VERSION='@(#)tzselect.ksh     8.2'

 # Ask the user about the time zone, and output the resulting TZ value to stdout.
 # Interact with the user via stderr and stdin.
***************
*** 45,50 ****
--- 45,65 ----
       exit 1
 }

+ if [ "$1" = "--help" ]; then
+     cat <<EOF
+ Usage: tzselect
+ Select a time zone interactively.
+
+ Report bugs to tz@elsie.nci.nih.gov.
+ EOF
+     exit 0
+ elif [ "$1" = "--version" ]; then
+     cat <<EOF
+ tzselect $VERSION
+ EOF
+     exit 0
+ fi
+
 # Make sure the tables are readable.
 TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab
 TZ_ZONE_TABLE=$TZDIR/zone.tab
diff -r -c old/zdump.c new/zdump.c
*** old/zdump.c Tue Sep  9 22:33:24 2008
--- new/zdump.c Wed Jan 14 11:01:56 2009
***************
*** 1,4 ****
! static char   elsieid[] = "@(#)zdump.c        8.6";

 /*
 ** This code has been made independent of the rest of the time
--- 1,4 ----
! static char   elsieid[] = "@(#)zdump.c        8.8";

 /*
 ** This code has been made independent of the rest of the time
***************
*** 230,235 ****
--- 230,246 ----
       warned = TRUE;
 }

+ static void
+ usage(const char *progname, FILE *stream, int status)
+ {
+       (void) fprintf(stream,
+ _("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\
+ \n\
+ Report bugs to tz@elsie.nci.nih.gov.\n"),
+                      progname, progname);
+       exit(status);
+ }
+
 int
 main(argc, argv)
 int   argc;
***************
*** 266,271 ****
--- 277,284 ----
               if (strcmp(argv[i], "--version") == 0) {
                       (void) printf("%s\n", elsieid);
                       exit(EXIT_SUCCESS);
+               } else if (strcmp(argv[i], "--help") == 0) {
+                       usage(progname, stdout, EXIT_SUCCESS);
               }
       vflag = 0;
       cutarg = NULL;
***************
*** 275,284 ****
               else    cutarg = optarg;
       if ((c != EOF && c != -1) ||
               (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
!                       (void) fprintf(stderr,
! _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
!                               progname, progname);
!                       exit(EXIT_FAILURE);
       }
       if (vflag) {
               if (cutarg != NULL) {
--- 288,294 ----
               else    cutarg = optarg;
       if ((c != EOF && c != -1) ||
               (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
!                       usage(progname, stderr, EXIT_FAILURE);
       }
       if (vflag) {
               if (cutarg != NULL) {
***************
*** 349,361 ****
                       (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1);
               }
               for ( ; ; ) {
!                       if (t >= cuthitime)
                               break;
                       newt = t + SECSPERHOUR * 12;
-                       if (newt >= cuthitime)
-                               break;
-                       if (newt <= t)
-                               break;
                       newtmp = localtime(&newt);
                       if (newtmp != NULL)
                               newtm = *newtmp;
--- 359,367 ----
                       (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1);
               }
               for ( ; ; ) {
!                       if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12)
                               break;
                       newt = t + SECSPERHOUR * 12;
                       newtmp = localtime(&newt);
                       if (newtmp != NULL)
                               newtm = *newtmp;
diff -r -c old/zic.c new/zic.c
*** old/zic.c   Tue Sep  9 22:33:18 2008
--- new/zic.c   Wed Jan 14 10:59:48 2009
***************
*** 3,9 ****
 ** 2006-07-17 by Arthur David Olson.
 */

! static char   elsieid[] = "@(#)zic.c  8.17";

 #include "private.h"
 #include "locale.h"
--- 3,9 ----
 ** 2006-07-17 by Arthur David Olson.
 */

! static char   elsieid[] = "@(#)zic.c  8.18";

 #include "private.h"
 #include "locale.h"
***************
*** 156,162 ****
                       const struct zone * zp, int ntzones);
 static void   setboundaries(void);
 static zic_t  tadd(zic_t t1, long t2);
! static void   usage(void);
 static void   writezone(const char * name, const char * string);
 static int    yearistype(int year, const char * type);

--- 156,162 ----
                       const struct zone * zp, int ntzones);
 static void   setboundaries(void);
 static zic_t  tadd(zic_t t1, long t2);
! static void   usage(FILE *stream, int status);
 static void   writezone(const char * name, const char * string);
 static int    yearistype(int year, const char * type);

***************
*** 454,466 ****
 }

 static void
! usage(void)
 {
!       (void) fprintf(stderr, _("%s: usage is %s \
! [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
!               progname, progname);
!       exit(EXIT_FAILURE);
 }

 static const char *   psxrules;
--- 454,468 ----
 }

 static void
! usage(FILE *stream, int status)
 {
!       (void) fprintf(stream, _("%s: usage is %s \
! [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\
! \n\
! Report bugs to tz@elsie.nci.nih.gov.\n"),
!                      progname, progname);
!       exit(status);
 }

 static const char *   psxrules;
***************
*** 498,508 ****
               if (strcmp(argv[i], "--version") == 0) {
                       (void) printf("%s\n", elsieid);
                       exit(EXIT_SUCCESS);
               }
       while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
               switch (c) {
                       default:
!                               usage();
                       case 'd':
                               if (directory == NULL)
                                       directory = optarg;
--- 500,512 ----
               if (strcmp(argv[i], "--version") == 0) {
                       (void) printf("%s\n", elsieid);
                       exit(EXIT_SUCCESS);
+               } else if (strcmp(argv[i], "--help") == 0) {
+                       usage(stdout, EXIT_SUCCESS);
               }
       while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
               switch (c) {
                       default:
!                               usage(stderr, EXIT_FAILURE);
                       case 'd':
                               if (directory == NULL)
                                       directory = optarg;
***************
*** 561,567 ****
                               break;
               }
       if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
!               usage();        /* usage message by request */
       if (directory == NULL)
               directory = TZDIR;
       if (yitcommand == NULL)
--- 565,571 ----
                               break;
               }
       if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
!               usage(stderr, EXIT_FAILURE);    /* usage message by request */
       if (directory == NULL)
               directory = TZDIR;
       if (yitcommand == NULL)
diff -r -c old/zone.tab new/zone.tab
*** old/zone.tab        Tue Oct 21 12:10:25 2008
--- new/zone.tab        Wed Jan 14 13:40:29 2009
***************
*** 1,4 ****
! # @(#)zone.tab        8.21
 #
 # TZ zone descriptions
 #
--- 1,4 ----
! # @(#)zone.tab        8.25
 #
 # TZ zone descriptions
 #
***************
*** 116,122 ****
 CA    +4823-08915     America/Thunder_Bay     Eastern Time - Thunder Bay, Ontario
 CA    +6344-06828     America/Iqaluit Eastern Time - east Nunavut - most locations
 CA    +6608-06544     America/Pangnirtung     Eastern Time - Pangnirtung, Nunavut
! CA    +744144-0944945 America/Resolute        Eastern Time - Resolute, Nunavut
 CA    +484531-0913718 America/Atikokan        Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
 CA    +624900-0920459 America/Rankin_Inlet    Central Time - central Nunavut
 CA    +4953-09709     America/Winnipeg        Central Time - Manitoba & west Ontario
--- 116,122 ----
 CA    +4823-08915     America/Thunder_Bay     Eastern Time - Thunder Bay, Ontario
 CA    +6344-06828     America/Iqaluit Eastern Time - east Nunavut - most locations
 CA    +6608-06544     America/Pangnirtung     Eastern Time - Pangnirtung, Nunavut
! CA    +744144-0944945 America/Resolute        Eastern Standard Time - Resolute, Nunavut
 CA    +484531-0913718 America/Atikokan        Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
 CA    +624900-0920459 America/Rankin_Inlet    Central Time - central Nunavut
 CA    +4953-09709     America/Winnipeg        Central Time - Manitoba & west Ontario
***************
*** 136,142 ****
 CD    -1140+02728     Africa/Lubumbashi       east Dem. Rep. of Congo
 CF    +0422+01835     Africa/Bangui
 CG    -0416+01517     Africa/Brazzaville
! CH    +4723+00832     Europe/Zurich
 CI    +0519-00402     Africa/Abidjan
 CK    -2114-15946     Pacific/Rarotonga
 CL    -3327-07040     America/Santiago        most locations
--- 136,143 ----
 CD    -1140+02728     Africa/Lubumbashi       east Dem. Rep. of Congo
 CF    +0422+01835     Africa/Bangui
 CG    -0416+01517     Africa/Brazzaville
! CH    +4723+00832     Europe/Zurich   most locations
! CH    +4614+00604     Europe/Geneva   Geneva only
 CI    +0519-00402     Africa/Abidjan
 CK    -2114-15946     Pacific/Rarotonga
 CL    -3327-07040     America/Santiago        most locations
***************
*** 292,298 ****
 NI    +1209-08617     America/Managua
 NL    +5222+00454     Europe/Amsterdam
 NO    +5955+01045     Europe/Oslo
! NP    +2743+08519     Asia/Katmandu
 NR    -0031+16655     Pacific/Nauru
 NU    -1901-16955     Pacific/Niue
 NZ    -3652+17446     Pacific/Auckland        most locations
--- 293,299 ----
 NI    +1209-08617     America/Managua
 NL    +5222+00454     Europe/Amsterdam
 NO    +5955+01045     Europe/Oslo
! NP    +2743+08519     Asia/Kathmandu
 NR    -0031+16655     Pacific/Nauru
 NU    -1901-16955     Pacific/Niue
 NZ    -3652+17446     Pacific/Auckland        most locations