Hello community,

here is the log from the commit of package timezone for openSUSE:Factory 
checked in at 2015-07-05 17:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/timezone (Old)
 and      /work/SRC/openSUSE:Factory/.timezone.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "timezone"

Changes:
--------
--- /work/SRC/openSUSE:Factory/timezone/timezone-java.changes   2015-05-22 
16:26:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.timezone.new/timezone-java.changes      
2015-07-05 17:50:01.000000000 +0200
@@ -1,0 +2,10 @@
+Sun Jun 14 15:22:29 UTC 2015 - [email protected]
+
+- timezone update 2015e [boo#934654]
+  *  Morocco will suspend DST from 2015-06-14 03:00 through 
+     2015-07-19 02:00, not 06-13 and 07-18 as guessed.
+   * Assume Cayman Islands will observe DST starting next year,
+     using US rules.
+   * The file 'iso3166.tab' now uses UTF-8
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/timezone/timezone.changes        2015-05-22 
16:26:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.timezone.new/timezone.changes   2015-07-05 
17:50:02.000000000 +0200
@@ -1,0 +2,17 @@
+Sun Jun 14 15:32:39 UTC 2015 - [email protected]
+
+- timezone update 2015e [boo#934654]
+  *  Morocco will suspend DST from 2015-06-14 03:00 through 
+     2015-07-19 02:00, not 06-13 and 07-18 as guessed.
+   * Assume Cayman Islands will observe DST starting next year,
+     using US rules.
+   * The file 'iso3166.tab' now uses UTF-8
+   * When displaying data, tzselect converts it to the current
+     locale's encoding if the iconv command works.
+   * tzselect no longer mishandles Dominica, fixing a bug introduced
+     in Release 2014f.
+   * zic -l no longer fails when compiled with
+     -DTZDEFAULT=\"/etc/localtime\", regression from 2014f.
+     Dropping upstreamed tzcode-zic-empty-comp.diff
+
+-------------------------------------------------------------------

Old:
----
  tzcode-zic-empty-comp.diff
  tzcode2015d.tar.gz
  tzcode2015d.tar.gz.asc
  tzdata2015d.tar.gz
  tzdata2015d.tar.gz.asc

New:
----
  tzcode2015e.tar.gz
  tzcode2015e.tar.gz.asc
  tzdata2015e.tar.gz
  tzdata2015e.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ timezone-java.spec ++++++
--- /var/tmp/diff_new_pack.TIpkdZ/_old  2015-07-05 17:50:03.000000000 +0200
+++ /var/tmp/diff_new_pack.TIpkdZ/_new  2015-07-05 17:50:03.000000000 +0200
@@ -25,7 +25,7 @@
 Group:          System/Base
 # COMMON-BEGIN
 # COMMON-BEGIN
-Version:        2015d
+Version:        2015e
 Release:        0
 Source:         ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
 Source1:        ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
@@ -40,7 +40,6 @@
 Patch3:         iso3166-uk.diff
 Patch4:         tzcode-link.diff
 Patch5:         tzcode-symlink.patch
-Patch6:         tzcode-zic-empty-comp.diff
 # COMMON-END
 # COMMON-END
 Url:            http://www.gnu.org/software/libc/libc.html
@@ -64,7 +63,6 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch6 -p1
 %if 0%{?suse_version} < 1220
 %patch4 -p1
 %else

++++++ timezone.spec ++++++
--- /var/tmp/diff_new_pack.TIpkdZ/_old  2015-07-05 17:50:03.000000000 +0200
+++ /var/tmp/diff_new_pack.TIpkdZ/_new  2015-07-05 17:50:03.000000000 +0200
@@ -23,7 +23,7 @@
 Url:            http://www.iana.org/time-zones
 PreReq:         filesystem, coreutils
 # COMMON-BEGIN
-Version:        2015d
+Version:        2015e
 Release:        0
 Source:         ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
 Source1:        ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
@@ -38,7 +38,6 @@
 Patch3:         iso3166-uk.diff
 Patch4:         tzcode-link.diff
 Patch5:         tzcode-symlink.patch
-Patch6:         tzcode-zic-empty-comp.diff
 # COMMON-END
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -58,7 +57,6 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch6 -p1
 %if 0%{?suse_version} < 1220
 %patch4 -p1
 %else


++++++ tzcode2015d.tar.gz -> tzcode2015e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Makefile new/Makefile
--- old/Makefile        2015-04-24 17:11:35.000000000 +0200
+++ new/Makefile        2015-06-13 19:57:13.000000000 +0200
@@ -5,7 +5,7 @@
 PACKAGE=       tzcode
 
 # Version numbers of the code and data distributions.
-VERSION=       2015d
+VERSION=       2015e
 
 # Email address for bug reports.
 BUGEMAIL=      [email protected]
@@ -292,23 +292,24 @@
 SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
 SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
 SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
-SAFE_CHARSET=  ]$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)-
-SAFE_CHAR=     '['$(SAFE_CHARSET)']'
-# NONSYM_CHAR is a regular expression that matches any character
-# except for a small number of symbols, where we prefer to stick with
+SAFE_CHARSET=  $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
+SAFE_CHAR=     '[]'$(SAFE_CHARSET)'-]'
+
+# OK_CHAR matches any character allowed in the distributed files.
+# This is the same as SAFE_CHAR, except that multibyte letters are
+# also allowed so that commentary can contain people's names and quote
+# non-English sources.  For non-letters the sources are limited to
 # ASCII renderings for the convenience of maintainers whose text editors
 # mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-NONSYM_CHAR=   '[^–—°′″≈≠≤≥±−×÷∞←→↔·•§¶«»‘’‚‛“”„‟‹›「」『』〝〞〟]'
+OK_CHAR=       '[][:alpha:]'$(SAFE_CHARSET)'-]'
 
 # SAFE_LINE matches a line of safe characters.
-# SAFE_SHARP_LINE is similar, except any character can follow '#';
+# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
 # this is so that comments can contain non-ASCII characters.
-# NONSYM_LINE matches a line of non-symbols.
-# VALID_LINE matches a line of any validly-encoded characters.
+# OK_LINE matches a line of OK characters.
 SAFE_LINE=     '^'$(SAFE_CHAR)'*$$'
-SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(NONSYM_CHAR)'*)?$$'
-NONSYM_LINE=   '^'$(NONSYM_CHAR)'*$$'
-VALID_LINE=    '^.*$$'
+SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
+OK_LINE=       '^'$(OK_CHAR)'*$$'
 
 # Flags to give 'tar' when making a distribution.
 # Try to use flags appropriate for GNU tar.
@@ -323,6 +324,8 @@
 
 ###############################################################################
 
+#MAKE=         make
+
 cc=            cc
 CC=            $(cc) -DTZDIR=\"$(TZDIR)\"
 
@@ -371,7 +374,7 @@
 
 all:           tzselect zic zdump libtz.a $(TABDATA)
 
-ALL:           all date
+ALL:           all date $(ENCHILADA)
 
 install:       all $(DATA) $(REDO) $(MANS)
                mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
@@ -475,14 +478,11 @@
 check_character_set: $(ENCHILADA)
                LC_ALL=en_US.utf8 && export LC_ALL && \
                sharp='#' && \
-               ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+               ! grep -Env $(SAFE_LINE) Makefile $(MANS) date.1 $(MANTXTS) \
                        $(MISC) $(SOURCES) $(WEB_PAGES) && \
                ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
-                       iso3166.tab leapseconds yearistype.sh zone.tab && \
-               test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
-               ! grep -Env $(NONSYM_LINE) CONTRIBUTING NEWS README Theory \
-                       $(MANS) date.1 zone1970.tab && \
-               ! grep -Env $(VALID_LINE) $(ENCHILADA)
+                       leapseconds yearistype.sh zone.tab && \
+               ! grep -Env $(OK_LINE) $(ENCHILADA)
 
 check_white_space: $(ENCHILADA)
                ! grep -En ' '$(TAB_CHAR)"|$$(printf '[\f\r\v]')" $(ENCHILADA)
@@ -573,9 +573,9 @@
 # The zics below ensure that each data file can stand on its own.
 # We also do an all-files run to catch links to links.
 
-check_public:  $(ENCHILADA)
-               make maintainer-clean
-               make "CFLAGS=$(GCC_DEBUG_FLAGS)" $(ENCHILADA) all
+check_public:
+               $(MAKE) maintainer-clean
+               $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
                mkdir tzpublic
                for i in $(TDATA) ; do \
                  $(zic) -v -d tzpublic $$i 2>&1 || exit; \
@@ -594,8 +594,8 @@
                zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab` && \
                for type in $(TIME_T_ALTERNATIVES); do \
                  mkdir -p tzpublic/$$type && \
-                 make clean_misc && \
-                 make TOPDIR=`pwd`/tzpublic/$$type \
+                 $(MAKE) clean_misc && \
+                 $(MAKE) TOPDIR=`pwd`/tzpublic/$$type \
                    CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
                    REDO='$(REDO)' \
                    install && \
@@ -641,12 +641,12 @@
                gpg --armor --detach-sign $?
 
 typecheck:
-               make clean
+               $(MAKE) clean
                for i in "long long" unsigned; \
                do \
-                       make CFLAGS="-DTYPECHECK -D__time_t_defined -D_TIME_T 
\"-Dtime_t=$$i\"" ; \
+                       $(MAKE) CFLAGS="-DTYPECHECK -D__time_t_defined 
-D_TIME_T \"-Dtime_t=$$i\"" ; \
                        ./zdump -v Europe/Rome ; \
-                       make clean ; \
+                       $(MAKE) clean ; \
                done
 
 zonenames:     $(TDATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NEWS new/NEWS
--- old/NEWS    2015-04-24 17:11:35.000000000 +0200
+++ new/NEWS    2015-06-13 19:57:13.000000000 +0200
@@ -1,5 +1,34 @@
 News for the tz database
 
+
+Release 2015e - 2015-06-13 10:56:02 -0700
+
+  Changes affecting future time stamps
+
+    Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00,
+    not 06-13 and 07-18 as we had guessed.  (Thanks to Milamber.)
+
+    Assume Cayman Islands will observe DST starting next year, using US rules.
+    Although it isn't guaranteed, it is the most likely.
+
+  Changes affecting data format
+
+    The file 'iso3166.tab' now uses UTF-8, so that its entries can better
+    spell the names of Åland Islands, Côte d'Ivoire, and Réunion.
+
+  Changes affecting code
+
+    When displaying data, tzselect converts it to the current locale's
+    encoding if the iconv command works.  (Problem reported by random832.)
+
+    tzselect no longer mishandles Dominica, fixing a bug introduced
+    in Release 2014f.  (Problem reported by Owen Leibman.)
+
+    zic -l no longer fails when compiled with -DTZDEFAULT=\"/etc/localtime\".
+    This fixes a bug introduced in Release 2014f.
+    (Problem reported by Leonardo Chiquitto.)
+
+
 Release 2015d - 2015-04-24 08:09:46 -0700
 
   Changes affecting future time stamps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/localtime.c new/localtime.c
--- old/localtime.c     2015-03-10 17:37:50.000000000 +0100
+++ new/localtime.c     2015-05-08 23:47:40.000000000 +0200
@@ -216,22 +216,44 @@
 {
        register int_fast32_t   result;
        register int            i;
+       int_fast32_t one = 1;
+       int_fast32_t halfmaxval = one << (32 - 2);
+       int_fast32_t maxval = halfmaxval - 1 + halfmaxval;
+       int_fast32_t minval = -1 - maxval;
 
-       result = (codep[0] & 0x80) ? -1 : 0;
-       for (i = 0; i < 4; ++i)
+       result = codep[0] & 0x7f;
+       for (i = 1; i < 4; ++i)
                result = (result << 8) | (codep[i] & 0xff);
+
+       if (codep[0] & 0x80) {
+         /* Do two's-complement negation even on non-two's-complement machines.
+            If the result would be minval - 1, return minval.  */
+         result -= !TWOS_COMPLEMENT(int_fast32_t) && result != 0;
+         result += minval;
+       }
        return result;
 }
 
 static int_fast64_t
 detzcode64(const char *const codep)
 {
-       register int_fast64_t result;
+       register uint_fast64_t result;
        register int    i;
+       int_fast64_t one = 1;
+       int_fast64_t halfmaxval = one << (64 - 2);
+       int_fast64_t maxval = halfmaxval - 1 + halfmaxval;
+       int_fast64_t minval = -TWOS_COMPLEMENT(int_fast64_t) - maxval;
 
-       result = (codep[0] & 0x80) ? -1 : 0;
-       for (i = 0; i < 8; ++i)
+       result = codep[0] & 0x7f;
+       for (i = 1; i < 8; ++i)
                result = (result << 8) | (codep[i] & 0xff);
+
+       if (codep[0] & 0x80) {
+         /* Do two's-complement negation even on non-two's-complement machines.
+            If the result would be minval - 1, return minval.  */
+         result -= !TWOS_COMPLEMENT(int_fast64_t) && result != 0;
+         result += minval;
+       }
        return result;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/private.h new/private.h
--- old/private.h       2015-04-20 08:12:58.000000000 +0200
+++ new/private.h       2015-05-08 23:47:40.000000000 +0200
@@ -472,15 +472,20 @@
 #define TYPE_SIGNED(type) (((type) -1) < 0)
 #endif /* !defined TYPE_SIGNED */
 
-/* The minimum and maximum finite time values.  */
-static time_t const time_t_min =
-  (TYPE_SIGNED(time_t)
-   ? (time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1)
-   : 0);
-static time_t const time_t_max =
-  (TYPE_SIGNED(time_t)
-   ? - (~ 0 < 0) - ((time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1))
-   : -1);
+#define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)
+
+/* Max and min values of the integer type T, of which only the bottom
+   B bits are used, and where the highest-order used bit is considered
+   to be a sign bit if T is signed.  */
+#define MAXVAL(t, b)                                           \
+  ((t) (((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))                  \
+       - 1 + ((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))))
+#define MINVAL(t, b)                                           \
+  ((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))
+
+/* The minimum and maximum finite time values.  This assumes no padding.  */
+static time_t const time_t_min = MINVAL(time_t, TYPE_BIT(time_t));
+static time_t const time_t_max = MAXVAL(time_t, TYPE_BIT(time_t));
 
 #ifndef INT_STRLEN_MAXIMUM
 /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tzselect.ksh new/tzselect.ksh
--- old/tzselect.ksh    2014-11-26 20:34:32.000000000 +0100
+++ new/tzselect.ksh    2015-05-27 19:11:50.000000000 +0200
@@ -37,10 +37,16 @@
 : ${AWK=awk}
 : ${TZDIR=`pwd`}
 
+# Output one argument as-is to standard output.
+# Safer than 'echo', which can mishandle '\' or leading '-'.
+say() {
+    printf '%s\n' "$1"
+}
+
 # Check for awk Posix compliance.
 ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1
 [ $? = 123 ] || {
-       echo >&2 "$0: Sorry, your '$AWK' program is not Posix compatible."
+       say >&2 "$0: Sorry, your '$AWK' program is not Posix compatible."
        exit 1
 }
 
@@ -154,16 +160,16 @@
     -version)
        exec echo "tzselect $PKGVERSION$TZVERSION" ;;
     -*)
-       echo >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;;
+       say >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;;
     *)
-       echo >&2 "$0: try '$0 --help'"; exit 1 ;;
+       say >&2 "$0: try '$0 --help'"; exit 1 ;;
     esac
 done
 
 shift `expr $OPTIND - 1`
 case $# in
 0) ;;
-*) echo >&2 "$0: $1: unknown argument"; exit 1 ;;
+*) say >&2 "$0: $1: unknown argument"; exit 1 ;;
 esac
 
 # Make sure the tables are readable.
@@ -172,11 +178,26 @@
 for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE
 do
        <"$f" || {
-               echo >&2 "$0: time zone files are not set up correctly"
+               say >&2 "$0: time zone files are not set up correctly"
                exit 1
        }
 done
 
+# If the current locale does not support UTF-8, convert data to current
+# locale's format if possible, as the shell aligns columns better that way.
+# Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI.
+! $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' &&
+    { tmp=`(mktemp -d) 2>/dev/null` || {
+       tmp=${TMPDIR-/tmp}/tzselect.$$ &&
+       (umask 77 && mkdir -- "$tmp")
+    };} &&
+    trap 'status=$?; rm -fr -- "$tmp"; exit $status' 0 HUP INT PIPE TERM &&
+    (iconv -f UTF-8 -t //TRANSLIT <"$TZ_COUNTRY_TABLE" >$tmp/iso3166.tab) \
+        2>/dev/null &&
+    TZ_COUNTRY_TABLE=$tmp/iso3166.tab &&
+    iconv -f UTF-8 -t //TRANSLIT <"$TZ_ZONE_TABLE" >$tmp/$zonetabtype.tab &&
+    TZ_ZONE_TABLE=$tmp/$zonetabtype.tab
+
 newline='
 '
 IFS=$newline
@@ -336,8 +357,7 @@
                                exit 0
                        }'
                do
-                       echo >&2 "'$TZ' is not a conforming" \
-                               'Posix time zone string.'
+                   say >&2 "'$TZ' is not a conforming Posix time zone string."
                done
                TZ_for_date=$TZ;;
        *)
@@ -359,7 +379,7 @@
                      sort -n |
                      sed "${location_limit}q"
                    `
-                   regions=`echo "$distance_table" | $AWK '
+                   regions=`say "$distance_table" | $AWK '
                      BEGIN { FS = "\t" }
                      { print $NF }
                    '`
@@ -369,7 +389,7 @@
                            "of distance from $coord".
                    doselect $regions
                    region=$select_result
-                   TZ=`echo "$distance_table" | $AWK -v region="$region" '
+                   TZ=`say "$distance_table" | $AWK -v region="$region" '
                      BEGIN { FS="\t" }
                      $NF == region { print $4 }
                    '`
@@ -429,6 +449,7 @@
                                        }
                                }
                        }
+                       /^#/ { next }
                        $1 ~ cc { print $4 }
                ' <"$TZ_ZONE_TABLE"`
 
@@ -460,6 +481,7 @@
                                        }
                                }
                        }
+                       /^#/ { next }
                        $1 ~ cc && $4 == region { print $3 }
                ' <"$TZ_ZONE_TABLE"`
                esac
@@ -467,7 +489,7 @@
                # Make sure the corresponding zoneinfo file exists.
                TZ_for_date=$TZDIR/$TZ
                <"$TZ_for_date" || {
-                       echo >&2 "$0: time zone files are not set up correctly"
+                       say >&2 "$0: time zone files are not set up correctly"
                        exit 1
                }
        esac
@@ -500,15 +522,15 @@
        echo >&2 "The following information has been given:"
        echo >&2 ""
        case $country%$region%$coord in
-       ?*%?*%) echo >&2 "      $country$newline        $region";;
-       ?*%%)   echo >&2 "      $country";;
-       %?*%?*) echo >&2 "      coord $coord$newline    $region";;
-       %%?*)   echo >&2 "      coord $coord";;
-       *)      echo >&2 "      TZ='$TZ'"
+       ?*%?*%) say >&2 "       $country$newline        $region";;
+       ?*%%)   say >&2 "       $country";;
+       %?*%?*) say >&2 "       coord $coord$newline    $region";;
+       %%?*)   say >&2 "       coord $coord";;
+       *)      say >&2 "       TZ='$TZ'"
        esac
-       echo >&2 ""
-       echo >&2 "Therefore TZ='$TZ' will be used.$extra_info"
-       echo >&2 "Is the above information OK?"
+       say >&2 ""
+       say >&2 "Therefore TZ='$TZ' will be used.$extra_info"
+       say >&2 "Is the above information OK?"
 
        doselect Yes No
        ok=$select_result
@@ -523,7 +545,7 @@
 *) file=.profile line="TZ='$TZ'; export TZ"
 esac
 
-echo >&2 "
+say >&2 "
 You can make this change permanent for yourself by appending the line
        $line
 to the file '$file' in your home directory; then log out and log in again.
@@ -531,4 +553,4 @@
 Here is that TZ value again, this time on standard output so that you
 can use the $0 command in shell scripts:"
 
-echo "$TZ"
+say "$TZ"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zdump.c new/zdump.c
--- old/zdump.c 2014-10-05 02:38:05.000000000 +0200
+++ new/zdump.c 2015-05-08 23:47:40.000000000 +0200
@@ -246,13 +246,15 @@
 extern char *  tzname[2];
 
 /* The minimum and maximum finite time values.  */
+enum { atime_shift = CHAR_BIT * sizeof (time_t) - 2 };
 static time_t const absolute_min_time =
   ((time_t) -1 < 0
-   ? (time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1)
+   ? (- ((time_t) ~ (time_t) 0 < 0)
+      - (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift)))
    : 0);
 static time_t const absolute_max_time =
   ((time_t) -1 < 0
-   ? - (~ 0 < 0) - ((time_t) -1 << (CHAR_BIT * sizeof (time_t) - 1))
+   ? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))
    : -1);
 static int     longest;
 static char *  progname;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zic.8 new/zic.8
--- old/zic.8   2014-09-11 09:29:22.000000000 +0200
+++ new/zic.8   2015-06-07 04:02:37.000000000 +0200
@@ -374,7 +374,8 @@
 It is specified as a year, a month, a day, and a time of day.
 If this is specified,
 the time zone information is generated from the given UT offset
-and rule change until the time specified.
+and rule change until the time specified, which is interpreted using
+the rules in effect just before the transition.
 The month, day, and time of day have the same format as the IN, ON, and AT
 fields of a rule; trailing fields can be omitted, and default to the
 earliest possible value for the missing fields.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zic.8.txt new/zic.8.txt
--- old/zic.8.txt       2014-09-11 09:29:22.000000000 +0200
+++ new/zic.8.txt       2015-06-07 04:02:37.000000000 +0200
@@ -225,10 +225,11 @@
              location.  It is specified as a year, a month, a day, and a time
              of day.  If this is specified, the time zone information is
              generated from the given UT offset and rule change until the time
-             specified.  The month, day, and time of day have the same format
-             as the IN, ON, and AT fields of a rule; trailing fields can be
-             omitted, and default to the earliest possible value for the
-             missing fields.
+             specified, which is interpreted using the rules in effect just
+             before the transition.  The month, day, and time of day have the
+             same format as the IN, ON, and AT fields of a rule; trailing
+             fields can be omitted, and default to the earliest possible value
+             for the missing fields.
 
              The next line must be a "continuation" line; this has the same
              form as a zone line except that the string "Zone" and the name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zic.c new/zic.c
--- old/zic.c   2015-04-20 08:12:58.000000000 +0200
+++ new/zic.c   2015-05-19 10:24:30.000000000 +0200
@@ -443,7 +443,8 @@
        **      zic ... 2>&1 | error -t "*" -v
        ** on BSD systems.
        */
-       fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
+       if (filename)
+         fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
        vfprintf(stderr, string, args);
        if (rfilename != NULL)
                fprintf(stderr, _(" (rule from \"%s\", line %d)"),
@@ -595,7 +596,7 @@
                                noise = true;
                                break;
                        case 's':
-                               warning(_("-s ignored\n"));
+                               warning(_("-s ignored"));
                                break;
                }
        if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
@@ -648,36 +649,43 @@
        return errors ? EXIT_FAILURE : EXIT_SUCCESS;
 }
 
-static void
+static bool
 componentcheck(char const *name, char const *component,
               char const *component_end)
 {
        enum { component_len_max = 14 };
        size_t component_len = component_end - component;
        if (component_len == 0) {
-               fprintf(stderr, _("%s: file name '%s' contains empty 
component"),
-                       progname, name);
-               exit(EXIT_FAILURE);
+         if (!*name)
+           error (_("empty file name"));
+         else
+           error (_(component == name
+                    ? "file name '%s' begins with '/'"
+                    : *component_end
+                    ? "file name '%s' contains '//'"
+                    : "file name '%s' ends with '/'"),
+                  name);
+         return false;
        }
        if (0 < component_len && component_len <= 2
            && component[0] == '.' && component_end[-1] == '.') {
-               fprintf(stderr, _("%s: file name '%s' contains"
-                                 " '%.*s' component"),
-                       progname, name, (int) component_len, component);
-               exit(EXIT_FAILURE);
+         error(_("file name '%s' contains '%.*s' component"),
+               name, (int) component_len, component);
+         return false;
        }
-       if (!noise)
-               return;
-       if (0 < component_len && component[0] == '-')
-               warning(_("file name '%s' component contains leading '-'"),
-                       name);
-       if (component_len_max < component_len)
-               warning(_("file name '%s' contains overlength component"
-                         " '%.*s...'"),
-                       name, component_len_max, component);
+       if (noise) {
+         if (0 < component_len && component[0] == '-')
+           warning(_("file name '%s' component contains leading '-'"),
+                   name);
+         if (component_len_max < component_len)
+           warning(_("file name '%s' contains overlength component"
+                     " '%.*s...'"),
+                   name, component_len_max, component);
+       }
+       return true;
 }
 
-static void
+static bool
 namecheck(const char *name)
 {
        register char const *cp;
@@ -701,14 +709,14 @@
                                 ? _("file name '%s' contains byte '%c'")
                                 : _("file name '%s' contains byte '\\%o'")),
                                name, c);
-                       return;
                }
                if (c == '/') {
-                       componentcheck(name, component, cp);
+                       if (!componentcheck(name, component, cp))
+                         return false;
                        component = cp + 1;
                }
        }
-       componentcheck(name, component, cp);
+       return componentcheck(name, component, cp);
 }
 
 static char *
@@ -733,7 +741,6 @@
        register char * toname;
        register int fromisdir;
 
-       namecheck(tofield);
        fromname = relname(directory, fromfield);
        toname = relname(directory, tofield);
        /*
@@ -813,8 +820,8 @@
 
 #define TIME_T_BITS_IN_FILE    64
 
-static const zic_t min_time = (zic_t) -1 << (TIME_T_BITS_IN_FILE - 1);
-static const zic_t max_time = -1 - ((zic_t) -1 << (TIME_T_BITS_IN_FILE - 1));
+static zic_t const min_time = MINVAL (zic_t, TIME_T_BITS_IN_FILE);
+static zic_t const max_time = MAXVAL (zic_t, TIME_T_BITS_IN_FILE);
 
 /* Estimated time of the Big Bang, in seconds since the POSIX epoch.
    rounded downward to the negation of a power of two that is
@@ -1020,9 +1027,9 @@
                                        break;
                                case LC_LEAP:
                                        if (name != leapsec)
-                                               warning(
-_("%s: Leap line in non leap seconds file %s\n"),
-                                                       progname, name);
+                                         warning(_("%s: Leap line in non leap"
+                                                   " seconds file %s"),
+                                                 progname, name);
                                        else    inleap(fields, nfields);
                                        wantcont = false;
                                        break;
@@ -1178,7 +1185,9 @@
                i_untilday = ZFC_TILDAY;
                i_untiltime = ZFC_TILTIME;
                z.z_name = NULL;
-       } else {
+       } else if (!namecheck(fields[ZF_NAME]))
+               return false;
+       else {
                i_gmtoff = ZF_GMTOFF;
                i_rule = ZF_RULE;
                i_format = ZF_FORMAT;
@@ -1354,10 +1363,8 @@
                error(_("blank FROM field on Link line"));
                return;
        }
-       if (*fields[LF_TO] == '\0') {
-               error(_("blank TO field on Link line"));
-               return;
-       }
+       if (! namecheck(fields[LF_TO]))
+         return;
        l.l_filename = filename;
        l.l_linenum = linenum;
        l.l_from = ecpyalloc(fields[LF_FROM]);
@@ -1587,7 +1594,6 @@
        void *typesptr = ats + timecnt;
        unsigned char *types = typesptr;
 
-       namecheck(name);
        /*
        ** Sort.
        */
@@ -2952,7 +2958,7 @@
                        if (itsdir(name) <= 0) {
                                char const *e = strerror(err);
                                warning(_("%s: Can't create directory"
-                                         " %s: %s\n"),
+                                         " %s: %s"),
                                        progname, name, e);
                                free(name);
                                return false;

++++++ tzdata2015d.tar.gz -> tzdata2015e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Makefile new/Makefile
--- old/Makefile        2015-04-24 17:11:35.000000000 +0200
+++ new/Makefile        2015-06-13 19:57:13.000000000 +0200
@@ -5,7 +5,7 @@
 PACKAGE=       tzcode
 
 # Version numbers of the code and data distributions.
-VERSION=       2015d
+VERSION=       2015e
 
 # Email address for bug reports.
 BUGEMAIL=      [email protected]
@@ -292,23 +292,24 @@
 SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
 SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
 SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
-SAFE_CHARSET=  ]$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)-
-SAFE_CHAR=     '['$(SAFE_CHARSET)']'
-# NONSYM_CHAR is a regular expression that matches any character
-# except for a small number of symbols, where we prefer to stick with
+SAFE_CHARSET=  $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
+SAFE_CHAR=     '[]'$(SAFE_CHARSET)'-]'
+
+# OK_CHAR matches any character allowed in the distributed files.
+# This is the same as SAFE_CHAR, except that multibyte letters are
+# also allowed so that commentary can contain people's names and quote
+# non-English sources.  For non-letters the sources are limited to
 # ASCII renderings for the convenience of maintainers whose text editors
 # mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-NONSYM_CHAR=   '[^–—°′″≈≠≤≥±−×÷∞←→↔·•§¶«»‘’‚‛“”„‟‹›「」『』〝〞〟]'
+OK_CHAR=       '[][:alpha:]'$(SAFE_CHARSET)'-]'
 
 # SAFE_LINE matches a line of safe characters.
-# SAFE_SHARP_LINE is similar, except any character can follow '#';
+# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
 # this is so that comments can contain non-ASCII characters.
-# NONSYM_LINE matches a line of non-symbols.
-# VALID_LINE matches a line of any validly-encoded characters.
+# OK_LINE matches a line of OK characters.
 SAFE_LINE=     '^'$(SAFE_CHAR)'*$$'
-SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(NONSYM_CHAR)'*)?$$'
-NONSYM_LINE=   '^'$(NONSYM_CHAR)'*$$'
-VALID_LINE=    '^.*$$'
+SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
+OK_LINE=       '^'$(OK_CHAR)'*$$'
 
 # Flags to give 'tar' when making a distribution.
 # Try to use flags appropriate for GNU tar.
@@ -323,6 +324,8 @@
 
 ###############################################################################
 
+#MAKE=         make
+
 cc=            cc
 CC=            $(cc) -DTZDIR=\"$(TZDIR)\"
 
@@ -371,7 +374,7 @@
 
 all:           tzselect zic zdump libtz.a $(TABDATA)
 
-ALL:           all date
+ALL:           all date $(ENCHILADA)
 
 install:       all $(DATA) $(REDO) $(MANS)
                mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
@@ -475,14 +478,11 @@
 check_character_set: $(ENCHILADA)
                LC_ALL=en_US.utf8 && export LC_ALL && \
                sharp='#' && \
-               ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+               ! grep -Env $(SAFE_LINE) Makefile $(MANS) date.1 $(MANTXTS) \
                        $(MISC) $(SOURCES) $(WEB_PAGES) && \
                ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \
-                       iso3166.tab leapseconds yearistype.sh zone.tab && \
-               test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
-               ! grep -Env $(NONSYM_LINE) CONTRIBUTING NEWS README Theory \
-                       $(MANS) date.1 zone1970.tab && \
-               ! grep -Env $(VALID_LINE) $(ENCHILADA)
+                       leapseconds yearistype.sh zone.tab && \
+               ! grep -Env $(OK_LINE) $(ENCHILADA)
 
 check_white_space: $(ENCHILADA)
                ! grep -En ' '$(TAB_CHAR)"|$$(printf '[\f\r\v]')" $(ENCHILADA)
@@ -573,9 +573,9 @@
 # The zics below ensure that each data file can stand on its own.
 # We also do an all-files run to catch links to links.
 
-check_public:  $(ENCHILADA)
-               make maintainer-clean
-               make "CFLAGS=$(GCC_DEBUG_FLAGS)" $(ENCHILADA) all
+check_public:
+               $(MAKE) maintainer-clean
+               $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL
                mkdir tzpublic
                for i in $(TDATA) ; do \
                  $(zic) -v -d tzpublic $$i 2>&1 || exit; \
@@ -594,8 +594,8 @@
                zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab` && \
                for type in $(TIME_T_ALTERNATIVES); do \
                  mkdir -p tzpublic/$$type && \
-                 make clean_misc && \
-                 make TOPDIR=`pwd`/tzpublic/$$type \
+                 $(MAKE) clean_misc && \
+                 $(MAKE) TOPDIR=`pwd`/tzpublic/$$type \
                    CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
                    REDO='$(REDO)' \
                    install && \
@@ -641,12 +641,12 @@
                gpg --armor --detach-sign $?
 
 typecheck:
-               make clean
+               $(MAKE) clean
                for i in "long long" unsigned; \
                do \
-                       make CFLAGS="-DTYPECHECK -D__time_t_defined -D_TIME_T 
\"-Dtime_t=$$i\"" ; \
+                       $(MAKE) CFLAGS="-DTYPECHECK -D__time_t_defined 
-D_TIME_T \"-Dtime_t=$$i\"" ; \
                        ./zdump -v Europe/Rome ; \
-                       make clean ; \
+                       $(MAKE) clean ; \
                done
 
 zonenames:     $(TDATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NEWS new/NEWS
--- old/NEWS    2015-04-24 17:11:35.000000000 +0200
+++ new/NEWS    2015-06-13 19:57:13.000000000 +0200
@@ -1,5 +1,34 @@
 News for the tz database
 
+
+Release 2015e - 2015-06-13 10:56:02 -0700
+
+  Changes affecting future time stamps
+
+    Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00,
+    not 06-13 and 07-18 as we had guessed.  (Thanks to Milamber.)
+
+    Assume Cayman Islands will observe DST starting next year, using US rules.
+    Although it isn't guaranteed, it is the most likely.
+
+  Changes affecting data format
+
+    The file 'iso3166.tab' now uses UTF-8, so that its entries can better
+    spell the names of Åland Islands, Côte d'Ivoire, and Réunion.
+
+  Changes affecting code
+
+    When displaying data, tzselect converts it to the current locale's
+    encoding if the iconv command works.  (Problem reported by random832.)
+
+    tzselect no longer mishandles Dominica, fixing a bug introduced
+    in Release 2014f.  (Problem reported by Owen Leibman.)
+
+    zic -l no longer fails when compiled with -DTZDEFAULT=\"/etc/localtime\".
+    This fixes a bug introduced in Release 2014f.
+    (Problem reported by Leonardo Chiquitto.)
+
+
 Release 2015d - 2015-04-24 08:09:46 -0700
 
   Changes affecting future time stamps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/africa new/africa
--- old/africa  2015-04-21 08:36:37.000000000 +0200
+++ new/africa  2015-06-10 18:37:23.000000000 +0200
@@ -338,9 +338,10 @@
 # time this summer, and carry out studies on the possibility of canceling the
 # practice altogether in future years."
 #
-# From Paul Eggert (2015-04-20):
-# For now, assume DST will be canceled.  Any resumption would likely
-# use different rules anyway.
+# From Paul Eggert (2015-04-24):
+# Yesterday the office of Egyptian President El-Sisi announced his
+# decision to abandon DST permanently.  See Ahram Online 2015-04-24.
+# 
http://english.ahram.org.eg/NewsContent/1/64/128509/Egypt/Politics-/Sisi-cancels-daylight-saving-time-in-Egypt.aspx
 
 Rule   Egypt   2008    only    -       Aug     lastThu 24:00   0       -
 Rule   Egypt   2009    only    -       Aug     20      24:00   0       -
@@ -787,20 +788,41 @@
 # will resume again at 02:00 on Saturday, August 2, 2014....
 # http://www.mmsp.gov.ma/fr/actualites.aspx?id=586
 
-# From Paul Eggert (2014-06-05):
-# For now, guess that later spring and fall transitions will use 2014's rules,
+# From Milamber (2015-06-08):
+# (Google Translation) The hour will thus be delayed 60 minutes
+# Sunday, June 14 at 3:00, the ministry said in a statement, adding
+# that the time will be advanced again 60 minutes Sunday, July 19,
+# 2015 at 2:00.  The move comes under 2.12.126 Decree of 26 Jumada I
+# 1433 (18 April 2012) and the decision of the Head of Government of
+# 16 N. 3-29-15 Chaaban 1435 (4 June 2015).
+# Source (french):
+# http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/
+#
+# From Milamber (2015-06-09):
+# http://www.mmsp.gov.ma/fr/actualites.aspx?id=863
+#
+# From Michael Deckers (2015-06-09):
+# [The gov.ma announcement] would (probably) make the switch on 2015-07-19 go
+# from 03:00 to 04:00 rather than from 02:00 to 03:00, as in the patch....
+# I think the patch is correct and the quoted text is wrong; the text in
+# <http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/> agrees
+# with the patch.
+
+# From Paul Eggert (2015-06-08):
+# For now, guess that later spring and fall transitions will use 2015's rules,
 # and guess that Morocco will switch to standard time at 03:00 the last
-# Saturday before Ramadan, and back to DST at 02:00 the first Saturday after
-# Ramadan.  To implement this, transition dates for 2015 through 2037 were
+# Sunday before Ramadan, and back to DST at 02:00 the first Sunday after
+# Ramadan.  To implement this, transition dates for 2016 through 2037 were
 # determined by running the following program under GNU Emacs 24.3, with the
 # results integrated by hand into the table below.
-# (let ((islamic-year 1436))
+# (let ((islamic-year 1437))
+#   (require 'cal-islam)
 #   (while (< islamic-year 1460)
 #     (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
 #           (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
-#           (saturday 6))
-#       (while (/= saturday (mod (setq a (1- a)) 7)))
-#       (while (/= saturday (mod b 7))
+#           (sunday 0))
+#       (while (/= sunday (mod (setq a (1- a)) 7)))
+#       (while (/= sunday (mod b 7))
 #         (setq b (1+ b)))
 #       (setq a (calendar-gregorian-from-absolute a))
 #       (setq b (calendar-gregorian-from-absolute b))
@@ -844,32 +866,30 @@
 Rule   Morocco 2013    only    -       Jul      7       3:00   0       -
 Rule   Morocco 2013    only    -       Aug     10       2:00   1:00    S
 Rule   Morocco 2013    max     -       Oct     lastSun  3:00   0       -
-Rule   Morocco 2014    2022    -       Mar     lastSun  2:00   1:00    S
+Rule   Morocco 2014    2021    -       Mar     lastSun  2:00   1:00    S
 Rule   Morocco 2014    only    -       Jun     28       3:00   0       -
 Rule   Morocco 2014    only    -       Aug      2       2:00   1:00    S
-Rule   Morocco 2015    only    -       Jun     13       3:00   0       -
-Rule   Morocco 2015    only    -       Jul     18       2:00   1:00    S
-Rule   Morocco 2016    only    -       Jun      4       3:00   0       -
-Rule   Morocco 2016    only    -       Jul      9       2:00   1:00    S
-Rule   Morocco 2017    only    -       May     20       3:00   0       -
-Rule   Morocco 2017    only    -       Jul      1       2:00   1:00    S
-Rule   Morocco 2018    only    -       May     12       3:00   0       -
-Rule   Morocco 2018    only    -       Jun     16       2:00   1:00    S
-Rule   Morocco 2019    only    -       May      4       3:00   0       -
-Rule   Morocco 2019    only    -       Jun      8       2:00   1:00    S
-Rule   Morocco 2020    only    -       Apr     18       3:00   0       -
-Rule   Morocco 2020    only    -       May     30       2:00   1:00    S
-Rule   Morocco 2021    only    -       Apr     10       3:00   0       -
-Rule   Morocco 2021    only    -       May     15       2:00   1:00    S
-Rule   Morocco 2022    only    -       Apr      2       3:00   0       -
-Rule   Morocco 2022    only    -       May      7       2:00   1:00    S
-Rule   Morocco 2023    only    -       Apr     22       2:00   1:00    S
-Rule   Morocco 2024    only    -       Apr     13       2:00   1:00    S
-Rule   Morocco 2025    only    -       Apr      5       2:00   1:00    S
+Rule   Morocco 2015    only    -       Jun     14       3:00   0       -
+Rule   Morocco 2015    only    -       Jul     19       2:00   1:00    S
+Rule   Morocco 2016    only    -       Jun      5       3:00   0       -
+Rule   Morocco 2016    only    -       Jul     10       2:00   1:00    S
+Rule   Morocco 2017    only    -       May     21       3:00   0       -
+Rule   Morocco 2017    only    -       Jul      2       2:00   1:00    S
+Rule   Morocco 2018    only    -       May     13       3:00   0       -
+Rule   Morocco 2018    only    -       Jun     17       2:00   1:00    S
+Rule   Morocco 2019    only    -       May      5       3:00   0       -
+Rule   Morocco 2019    only    -       Jun      9       2:00   1:00    S
+Rule   Morocco 2020    only    -       Apr     19       3:00   0       -
+Rule   Morocco 2020    only    -       May     24       2:00   1:00    S
+Rule   Morocco 2021    only    -       Apr     11       3:00   0       -
+Rule   Morocco 2021    only    -       May     16       2:00   1:00    S
+Rule   Morocco 2022    only    -       May      8       2:00   1:00    S
+Rule   Morocco 2023    only    -       Apr     23       2:00   1:00    S
+Rule   Morocco 2024    only    -       Apr     14       2:00   1:00    S
+Rule   Morocco 2025    only    -       Apr      6       2:00   1:00    S
 Rule   Morocco 2026    max     -       Mar     lastSun  2:00   1:00    S
-Rule   Morocco 2035    only    -       Oct     27       3:00   0       -
-Rule   Morocco 2036    only    -       Oct     18       3:00   0       -
-Rule   Morocco 2037    only    -       Oct     10       3:00   0       -
+Rule   Morocco 2036    only    -       Oct     19       3:00   0       -
+Rule   Morocco 2037    only    -       Oct      4       3:00   0       -
 
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Africa/Casablanca -0:30:20 -      LMT     1913 Oct 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/backzone new/backzone
--- old/backzone        2015-03-24 20:36:37.000000000 +0100
+++ new/backzone        2015-05-15 23:33:01.000000000 +0200
@@ -279,11 +279,6 @@
                        -4:30   -       ANT     1965 # Netherlands Antilles Time
                        -4:00   -       AST
 
-# Cayman Is
-Zone   America/Cayman  -5:25:32 -      LMT     1890     # Georgetown
-                       -5:07:11 -      KMT     1912 Feb # Kingston Mean Time
-                       -5:00   -       EST
-
 # Canada
 Zone America/Coral_Harbour -5:32:40 -  LMT     1884
                        -5:00   NT_YK   E%sT    1946
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/iso3166.tab new/iso3166.tab
--- old/iso3166.tab     2014-07-18 22:31:54.000000000 +0200
+++ new/iso3166.tab     2015-05-03 03:00:13.000000000 +0200
@@ -3,11 +3,10 @@
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 #
-# From Paul Eggert (2014-07-18):
+# From Paul Eggert (2015-05-02):
 # This file contains a table of two-letter country codes.  Columns are
 # separated by a single tab.  Lines beginning with '#' are comments.
-# Although all text currently uses ASCII encoding, this is planned to
-# change to UTF-8 soon.  The columns of the table are as follows:
+# All text uses UTF-8 encoding.  The columns of the table are as follows:
 #
 # 1.  ISO 3166-1 alpha-2 country code, current as of
 #     ISO 3166-1 Newsletter VI-16 (2013-07-11).  See: Updates on ISO 3166
@@ -38,7 +37,7 @@
 AT     Austria
 AU     Australia
 AW     Aruba
-AX     Aaland Islands
+AX     Åland Islands
 AZ     Azerbaijan
 BA     Bosnia & Herzegovina
 BB     Barbados
@@ -67,7 +66,7 @@
 CF     Central African Rep.
 CG     Congo (Rep.)
 CH     Switzerland
-CI     Cote d'Ivoire
+CI     Côte d'Ivoire
 CK     Cook Islands
 CL     Chile
 CM     Cameroon
@@ -211,7 +210,7 @@
 PW     Palau
 PY     Paraguay
 QA     Qatar
-RE     Reunion
+RE     Réunion
 RO     Romania
 RS     Serbia
 RU     Russia
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/northamerica new/northamerica
--- old/northamerica    2015-04-18 04:10:32.000000000 +0200
+++ new/northamerica    2015-05-15 23:33:01.000000000 +0200
@@ -2661,7 +2661,17 @@
                        -4:00   US      A%sT
 
 # Cayman Is
-# See America/Panama.
+
+# From Paul Eggert (2015-05-15):
+# The Cayman government has decided to introduce DST in 2016, the idea being
+# to keep in sync with New York.  The legislation hasn't passed but the change
+# seems quite likely.  See: Meade B. Cayman 27.
+# 
http://www.cayman27.com.ky/2015/05/15/clock-ticks-toward-daylight-saving-time-in-cayman
+
+Zone   America/Cayman  -5:25:32 -      LMT     1890     # Georgetown
+                       -5:07:11 -      KMT     1912 Feb # Kingston Mean Time
+                       -5:00   -       EST     2016
+                       -5:00   US      E%sT
 
 # Costa Rica
 
@@ -3184,7 +3194,6 @@
 Zone   America/Panama  -5:18:08 -      LMT     1890
                        -5:19:36 -      CMT     1908 Apr 22 # Colón Mean Time
                        -5:00   -       EST
-Link America/Panama America/Cayman
 
 # Puerto Rico
 # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/southamerica new/southamerica
--- old/southamerica    2015-04-06 06:06:42.000000000 +0200
+++ new/southamerica    2015-05-03 00:20:28.000000000 +0200
@@ -30,7 +30,7 @@
 #      I suggest the use of _Summer time_ instead of the more cumbersome
 #      _daylight-saving time_.  _Summer time_ seems to be in general use
 #      in Europe and South America.
-#      -- E O Cutler, _New York Times_ (1937-02-14), quoted in
+#      -- E O Cutler, _New York Times_ (1937-02-14), quoted in
 #      H L Mencken, _The American Language: Supplement I_ (1960), p 466
 #
 # Earlier editions of these tables also used the North American style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zone1970.tab new/zone1970.tab
--- old/zone1970.tab    2015-01-28 19:25:25.000000000 +0100
+++ new/zone1970.tab    2015-05-15 23:33:01.000000000 +0200
@@ -206,6 +206,7 @@
 KI     +0152-15720     Pacific/Kiritimati      Line Islands
 KP     +3901+12545     Asia/Pyongyang
 KR     +3733+12658     Asia/Seoul
+KY     +1918-08123     America/Cayman
 KZ     +4315+07657     Asia/Almaty     most locations
 KZ     +4448+06528     Asia/Qyzylorda  Qyzylorda (Kyzylorda, Kzyl-Orda)
 KZ     +5017+05710     Asia/Aqtobe     Aqtobe (Aktobe)
@@ -259,7 +260,7 @@
 NU     -1901-16955     Pacific/Niue
 NZ,AQ  -3652+17446     Pacific/Auckland        New Zealand time
 NZ     -4357-17633     Pacific/Chatham Chatham Islands
-PA,KY  +0858-07932     America/Panama
+PA     +0858-07932     America/Panama
 PE     -1203-07703     America/Lima
 PF     -1732-14934     Pacific/Tahiti  Society Islands
 PF     -0900-13930     Pacific/Marquesas       Marquesas Islands


Reply via email to