r56924 - in /trunk/libtime-y2038-perl: Changes MANIFEST META.yml SIGNATURE debian/changelog inc/Local/Module/Build.pm lib/Time/y2038.pm lib/Time/y2038.xs lib/Time/y2038/Everywhere.pm t/localtimetz.t y2038/time64.c y2038/time64_limits.h.in

ivan at users.alioth.debian.org ivan at users.alioth.debian.org
Mon Apr 26 03:51:02 UTC 2010


Author: ivan
Date: Mon Apr 26 03:50:53 2010
New Revision: 56924

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=56924
Log:
new upstream

Added:
    trunk/libtime-y2038-perl/t/localtimetz.t
      - copied unchanged from r56922, branches/upstream/libtime-y2038-perl/current/t/localtimetz.t
Modified:
    trunk/libtime-y2038-perl/Changes
    trunk/libtime-y2038-perl/MANIFEST
    trunk/libtime-y2038-perl/META.yml
    trunk/libtime-y2038-perl/SIGNATURE
    trunk/libtime-y2038-perl/debian/changelog
    trunk/libtime-y2038-perl/inc/Local/Module/Build.pm
    trunk/libtime-y2038-perl/lib/Time/y2038.pm
    trunk/libtime-y2038-perl/lib/Time/y2038.xs
    trunk/libtime-y2038-perl/lib/Time/y2038/Everywhere.pm
    trunk/libtime-y2038-perl/y2038/time64.c
    trunk/libtime-y2038-perl/y2038/time64_limits.h.in

Modified: trunk/libtime-y2038-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/Changes?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/Changes (original)
+++ trunk/libtime-y2038-perl/Changes Mon Apr 26 03:50:53 2010
@@ -1,3 +1,14 @@
+20100403  Sat Apr  3 20:25:49 PDT 2010
+  Build
+  * Add a timeout to the system time.h limit check for systems that
+    hang when you try times too large. [rt.cpan.org 40764]
+
+  Bugs
+  * strict compilers, like Sun's cc, would error because we passed
+    too many elements to the tm struct.  [rt.cpan.org #55225]
+  * Ensure localtime() honors the TZ environment variable.
+
+
 20100225  Thu Feb 25 23:09:15 PST 2010
   Bugs
   * Accidentally left a debugging print in mktime()

Modified: trunk/libtime-y2038-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/MANIFEST?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/MANIFEST (original)
+++ trunk/libtime-y2038-perl/MANIFEST Mon Apr 26 03:50:53 2010
@@ -11,6 +11,7 @@
 META.yml
 munge_config
 t/everywhere.t
+t/localtimetz.t
 t/time.t
 t/timegm.t
 typemap

Modified: trunk/libtime-y2038-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/META.yml?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/META.yml (original)
+++ trunk/libtime-y2038-perl/META.yml Mon Apr 26 03:50:53 2010
@@ -11,7 +11,7 @@
   Test::Warn: 0.11
 configure_requires:
   Module::Build: 0.36
-generated_by: 'Module::Build version 0.3601'
+generated_by: 'Module::Build version 0.3603'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -20,12 +20,12 @@
 provides:
   Time::y2038:
     file: lib/Time/y2038.pm
-    version: 20100225
+    version: 20100403
   Time::y2038::Everywhere:
     file: lib/Time/y2038/Everywhere.pm
-    version: 20100225
+    version: 20100403
 requires:
   perl: v5.6.1
 resources:
   license: http://dev.perl.org/licenses/
-version: 20100225
+version: 20100403

Modified: trunk/libtime-y2038-perl/SIGNATURE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/SIGNATURE?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/SIGNATURE (original)
+++ trunk/libtime-y2038-perl/SIGNATURE Mon Apr 26 03:50:53 2010
@@ -15,29 +15,30 @@
 Hash: SHA1
 
 SHA1 4d4b9fe7a9836ea619fbc68874efa7d7e6d60cd2 Build.PL
-SHA1 ba2cd06b37426fbe4f35abb48450892d0ba479b7 Changes
+SHA1 3b29b365a4cdf942f0eab9d537c0d93dd2007611 Changes
 SHA1 fb110d0098fa623a2d6566e86a6d630110f60d23 INSTALL
-SHA1 0abcc59e081d5fa311e6b18c24f94a4f0a3d47b9 MANIFEST
+SHA1 3170f39a524774094b99997ef580a9760a3d7757 MANIFEST
 SHA1 b42c7cde42d44221603a84f6bdfeb4a6005604e5 MANIFEST.SKIP
-SHA1 4ad2939ae908ea735239fd0fb15e0afa6992fbdd META.yml
+SHA1 2df76dbe03a63cc8164fb816b328cf0235239e5e META.yml
 SHA1 d2f3d11e9f7f0fd886b47f9257352eb8b71bf4a8 check_max.c
-SHA1 f952a76c3122bcb434c86e606583b11fd1bd3f4a inc/Local/Module/Build.pm
-SHA1 46655ecd65fdca0fe725979a4a0c0e209c5ed8a6 lib/Time/y2038.pm
-SHA1 666e25e498a3bd6bdb9bcab3f9e5b8812e4567f3 lib/Time/y2038.xs
-SHA1 733537345b80d2edba102212d2591b24a7a8581a lib/Time/y2038/Everywhere.pm
+SHA1 21842315e5b12aac383ea48aa10a41a7ab95787d inc/Local/Module/Build.pm
+SHA1 f2cee8c7a7fd7e6422c19727ec5258e359b09803 lib/Time/y2038.pm
+SHA1 ddd3ef1934b37a4fe1644f8045a775a30278df72 lib/Time/y2038.xs
+SHA1 ad65a95fd786d4c53c453ee42055175a63dc080c lib/Time/y2038/Everywhere.pm
 SHA1 6c52173a196e81890474ea47f31ba2aeb3b7939c munge_config
 SHA1 1fa62ec9022c346fa26bf94652114e38b5efc5f0 t/everywhere.t
+SHA1 76efef2e7c55a7e351c62e44820f0f87b64d85a1 t/localtimetz.t
 SHA1 53f53a00f22f19b5f16d7801e730e57c173f61c7 t/time.t
 SHA1 851b9264b863b168ed07d17720e0176a0fe67d7c t/timegm.t
 SHA1 a915486e0da8713dead77ca21d041c8ae6b6676e typemap
-SHA1 e05084cdf3b64b4fa9883a41aefaa5b3d3e21407 y2038/time64.c
+SHA1 b84518ded0b1ab0d30107cb4d4002bfa64757bff y2038/time64.c
 SHA1 0d7cf54304f41d3dbfd803d597c29d62b845ce2a y2038/time64.h
 SHA1 015c751b69ae7971c626034ad2b27eaabe5a76a7 y2038/time64_config.h.in
-SHA1 0f73eae859e4709f30194d5e989487ffa7fd28d2 y2038/time64_limits.h.in
+SHA1 95314ecad677f573bf33bbb3c4b70d8880f15975 y2038/time64_limits.h.in
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.13 (Darwin)
 
-iEYEARECAAYFAkuHdCAACgkQWMohlhD1QyctMgCgwOvJ+LFEFcmCG9snFxnjCDcR
-iPIAoL6Mv3P9NX1xGeSYJKtRswLUH87m
-=xaTK
+iEYEARECAAYFAku4BwEACgkQWMohlhD1QydTmgCg0dkZK9ux6iP9/KLwbhW+G2AA
+9pUAn2dkAgtjHD2DN/UQSjAvPnLY6o5a
+=cNQs
 -----END PGP SIGNATURE-----

Modified: trunk/libtime-y2038-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/debian/changelog?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/debian/changelog (original)
+++ trunk/libtime-y2038-perl/debian/changelog Mon Apr 26 03:50:53 2010
@@ -1,3 +1,9 @@
+libtime-y2038-perl (20100403-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Ivan Kohler <ivan-debian at 420.am>  Sun, 25 Apr 2010 20:44:10 -0700
+
 libtime-y2038-perl (20100225-2) unstable; urgency=low
 
   * Take over for the Debian Perl Group
@@ -9,7 +15,7 @@
   * Add B-D-I on libmodule-build-perl (>= 0.36) | perl (>= 5.12)
     (closes: Bug#576994)
   * Using the required Module::Build version should prevent errors about
-    tine64_config.h too (closes: Bug#577331)
+    time64_config.h too (closes: Bug#577331)
 
  -- Ivan Kohler <ivan-debian at 420.am>  Sun, 18 Apr 2010 09:09:05 -0700
 

Modified: trunk/libtime-y2038-perl/inc/Local/Module/Build.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/inc/Local/Module/Build.pm?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/inc/Local/Module/Build.pm (original)
+++ trunk/libtime-y2038-perl/inc/Local/Module/Build.pm Mon Apr 26 03:50:53 2010
@@ -4,6 +4,77 @@
 use base qw(Module::Build);
 
 use ExtUtils::CBuilder;
+
+# A very conservative set of default limits for the system time.h
+my %Limit_Defaults = (
+    gmtime      => {
+        max =>  2147483647,
+        min =>  0,
+    },
+
+    localtime => {
+        max => 2147483647,
+        min => 0,
+    },
+
+    mktime => {
+        max => {
+            tm_gmtoff =>  0,
+            tm_hour =>  3,
+            tm_isdst =>  0,
+            tm_mday =>  19,
+            tm_min =>  14,
+            tm_mon =>  0,
+            tm_sec =>  7,
+            tm_wday =>  2,
+            tm_yday =>  18,
+            tm_year =>  138,
+            tm_zone =>  "UTC",
+        },
+        min => {
+            tm_gmtoff =>  0,
+            tm_hour =>  0,
+            tm_isdst =>  0,
+            tm_mday =>  1,
+            tm_min =>  0,
+            tm_mon =>  0,
+            tm_sec =>  0,
+            tm_wday =>  4,
+            tm_yday =>  0,
+            tm_year =>  70,
+            tm_zone =>  "UTC",
+        },
+    },
+    timegm => {
+        max => {
+            tm_gmtoff =>  0,
+            tm_hour =>  3,
+            tm_isdst =>  0,
+            tm_mday =>  19,
+            tm_min =>  14,
+            tm_mon =>  0,
+            tm_sec =>  7,
+            tm_wday =>  2,
+            tm_yday =>  18,
+            tm_year =>  138,
+            tm_zone =>  "UTC",
+        },
+
+        min => {
+            tm_gmtoff =>  0,
+            tm_hour =>  0,
+            tm_isdst =>  0,
+            tm_mday =>  1,
+            tm_min =>  0,
+            tm_mon =>  0,
+            tm_sec =>  0,
+            tm_wday =>  4,
+            tm_yday =>  0,
+            tm_year =>  70,
+            tm_zone =>  "UTC",
+        }
+    }
+);
 
 sub is_osx_106 {
     return 0 unless $^O eq 'darwin';
@@ -126,11 +197,23 @@
     warn "  and running it...\n";
 
     require JSON;
-    my $json = `./$exe`;
-    $json =~ s{^\#.*\n}{}gm;
-    my $limits = JSON::from_json($json);
-
+
+    my $limits;
+    my $json = run_in_alarm( 2, sub {
+        return `./$exe`;
+    }, sub {
+        warn "  time limit check timed out, using defaults";
+        return;
+    });
     warn "  Done.\n";
+
+    if( $json ) {
+        $json =~ s{^\#.*\n}{}gm;
+        $limits = JSON::from_json($json);
+    }
+    else {
+        $limits = \%Limit_Defaults;
+    }
 
     my %config;
     for my $key (qw(gmtime localtime)) {
@@ -176,6 +259,26 @@
 }
 
 
+sub run_in_alarm {
+    my($timeout, $try, $catch) = @_;
+
+    my(@ret, $ret);
+    my $pass = eval {
+        local $SIG{ALRM} = sub { die "alarm\n" };
+        alarm $timeout;
+        wantarray ? @ret = $try->() : $ret = $try->();
+        alarm 0;
+        1;
+    };
+
+    return wantarray ? @ret : $ret if $pass;
+
+    return $catch->() if $@ eq "alarm\n";
+
+    die $@;
+}
+
+
 # This is necessary because Cygwin nerotically puts a .exe on
 # every executable.  This appears to be built into gcc.
 sub find_real_exe {

Modified: trunk/libtime-y2038-perl/lib/Time/y2038.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/lib/Time/y2038.pm?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/lib/Time/y2038.pm (original)
+++ trunk/libtime-y2038-perl/lib/Time/y2038.pm Mon Apr 26 03:50:53 2010
@@ -6,7 +6,7 @@
 use base qw(Exporter);
 use XSLoader;
 
-our $VERSION = '20100225';
+our $VERSION = '20100403';
 our @EXPORT = qw(localtime gmtime timegm timelocal);
 
 XSLoader::load __PACKAGE__, $VERSION;
@@ -118,7 +118,7 @@
 
 =head1 LICENSE & COPYRIGHT
 
-Copyright 2008 Michael G Schwern
+Copyright 2008-2010 Michael G Schwern
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
@@ -132,4 +132,6 @@
 
 The y2038 project at F<http://y2038.googlecode.com/>
 
+L<http://xkcd.com/376/>
+
 =cut

Modified: trunk/libtime-y2038-perl/lib/Time/y2038.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/lib/Time/y2038.xs?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/lib/Time/y2038.xs (original)
+++ trunk/libtime-y2038-perl/lib/Time/y2038.xs Mon Apr 26 03:50:53 2010
@@ -138,6 +138,7 @@
             }
         }
 
+	tzset();
         err = localtime64_r(&when, &date);
 
         if( err == NULL )

Modified: trunk/libtime-y2038-perl/lib/Time/y2038/Everywhere.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/lib/Time/y2038/Everywhere.pm?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/lib/Time/y2038/Everywhere.pm (original)
+++ trunk/libtime-y2038-perl/lib/Time/y2038/Everywhere.pm Mon Apr 26 03:50:53 2010
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '20100225';
+our $VERSION = '20100403';
 
 use Time::y2038;
 

Modified: trunk/libtime-y2038-perl/y2038/time64.c
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/y2038/time64.c?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/y2038/time64.c (original)
+++ trunk/libtime-y2038-perl/y2038/time64.c Mon Apr 26 03:50:53 2010
@@ -1,6 +1,6 @@
 /* 
 
-Copyright (c) 2007-2008  Michael G Schwern
+Copyright (c) 2007-2010  Michael G Schwern
 
 This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
 
@@ -48,96 +48,6 @@
 #include "time64.h"
 #include "time64_limits.h"
 
-struct tm SYSTEM_MKTIME_MAX = {
-SYSTEM_MKTIME_MAX_TM_SEC,
-SYSTEM_MKTIME_MAX_TM_MIN, 
-SYSTEM_MKTIME_MAX_TM_HOUR, 
-SYSTEM_MKTIME_MAX_TM_MDAY,
-SYSTEM_MKTIME_MAX_TM_MON,
-SYSTEM_MKTIME_MAX_TM_YEAR,
-SYSTEM_MKTIME_MAX_TM_WDAY,
-SYSTEM_MKTIME_MAX_TM_YDAY,
-SYSTEM_MKTIME_MAX_TM_ISDST
-#ifdef HAS_TM_TM_GMTOFF
-,SYSTEM_MKTIME_MAX_TM_GMTOFF
-#else
-,0
-#endif
-#ifdef HAS_TM_TM_ZONE
-,SYSTEM_MKTIME_MAX_TM_ZONE
-#else
-,""
-#endif
-};
-
-const struct tm SYSTEM_MKTIME_MIN = {
-SYSTEM_MKTIME_MIN_TM_SEC,
-SYSTEM_MKTIME_MIN_TM_MIN, 
-SYSTEM_MKTIME_MIN_TM_HOUR, 
-SYSTEM_MKTIME_MIN_TM_MDAY,
-SYSTEM_MKTIME_MIN_TM_MON,
-SYSTEM_MKTIME_MIN_TM_YEAR,
-SYSTEM_MKTIME_MIN_TM_WDAY,
-SYSTEM_MKTIME_MIN_TM_YDAY,
-SYSTEM_MKTIME_MIN_TM_ISDST
-#ifdef HAS_TM_TM_GMTOFF
-,SYSTEM_MKTIME_MIN_TM_GMTOFF
-#else
-,0
-#endif
-#ifdef HAS_TM_TM_ZONE
-,SYSTEM_MKTIME_MIN_TM_ZONE
-#else
-,""
-#endif
-};
-
-#ifdef HAS_TIMEGM
-const struct tm SYSTEM_TIMEGM_MAX = {
-SYSTEM_TIMEGM_MAX_TM_SEC,
-SYSTEM_TIMEGM_MAX_TM_MIN, 
-SYSTEM_TIMEGM_MAX_TM_HOUR, 
-SYSTEM_TIMEGM_MAX_TM_MDAY,
-SYSTEM_TIMEGM_MAX_TM_MON,
-SYSTEM_TIMEGM_MAX_TM_YEAR,
-SYSTEM_TIMEGM_MAX_TM_WDAY,
-SYSTEM_TIMEGM_MAX_TM_YDAY,
-SYSTEM_TIMEGM_MAX_TM_ISDST
-#ifdef HAS_TM_TM_GMTOFF
-,SYSTEM_TIMEGM_MAX_TM_GMTOFF
-#else
-,0
-#endif
-#ifdef HAS_TM_TM_ZONE
-,SYSTEM_TIMEGM_MAX_TM_ZONE
-#else
-,""
-#endif
-};
-
-const struct tm SYSTEM_TIMEGM_MIN = {
-SYSTEM_TIMEGM_MIN_TM_SEC,
-SYSTEM_TIMEGM_MIN_TM_MIN, 
-SYSTEM_TIMEGM_MIN_TM_HOUR, 
-SYSTEM_TIMEGM_MIN_TM_MDAY,
-SYSTEM_TIMEGM_MIN_TM_MON,
-SYSTEM_TIMEGM_MIN_TM_YEAR,
-SYSTEM_TIMEGM_MIN_TM_WDAY,
-SYSTEM_TIMEGM_MIN_TM_YDAY,
-SYSTEM_TIMEGM_MIN_TM_ISDST
-#ifdef HAS_TM_TM_GMTOFF
-,SYSTEM_TIMEGM_MIN_TM_GMTOFF
-#else
-,0
-#endif
-#ifdef HAS_TM_TM_ZONE
-,SYSTEM_TIMEGM_MIN_TM_ZONE
-#else
-,""
-#endif
-};
-#endif /* HAS_TIMEGM */
-
 
 /* Spec says except for stftime() and the _r() functions, these
    all return static memory.  Stabbings! */
@@ -154,11 +64,11 @@
     {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335},
 };
 
-static char wday_name[7][3] = {
+static char wday_name[7][4] = {
     "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
 };
 
-static char mon_name[12][3] = {
+static char mon_name[12][4] = {
     "Jan", "Feb", "Mar", "Apr", "May", "Jun",
     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
 };
@@ -895,6 +805,7 @@
 
 /* Non-thread safe versions of the above */
 struct TM *localtime64(const Time64_T *time) {
+    tzset();
     return localtime64_r(time, &Static_Return_Date);
 }
 
@@ -907,5 +818,6 @@
 }
 
 char *ctime64( const Time64_T* time ) {
+    tzset();
     return asctime64(localtime64(time));
 }

Modified: trunk/libtime-y2038-perl/y2038/time64_limits.h.in
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libtime-y2038-perl/y2038/time64_limits.h.in?rev=56924&op=diff
==============================================================================
--- trunk/libtime-y2038-perl/y2038/time64_limits.h.in (original)
+++ trunk/libtime-y2038-perl/y2038/time64_limits.h.in Mon Apr 26 03:50:53 2010
@@ -17,72 +17,80 @@
 #define SYSTEM_GMTIME_MIN       %%gmtime_min%%
 
 /* Max/min for mktime() */
-#define SYSTEM_MKTIME_MAX_TM_SEC        %%mktime_max_tm_sec%%
-#define SYSTEM_MKTIME_MAX_TM_MIN        %%mktime_max_tm_min%%
-#define SYSTEM_MKTIME_MAX_TM_HOUR       %%mktime_max_tm_hour%%
-#define SYSTEM_MKTIME_MAX_TM_MDAY       %%mktime_max_tm_mday%%
-#define SYSTEM_MKTIME_MAX_TM_MON        %%mktime_max_tm_mon%%
-#define SYSTEM_MKTIME_MAX_TM_YEAR       %%mktime_max_tm_year%%
-#define SYSTEM_MKTIME_MAX_TM_WDAY       %%mktime_max_tm_wday%%
-#define SYSTEM_MKTIME_MAX_TM_YDAY       %%mktime_max_tm_yday%%
-#define SYSTEM_MKTIME_MAX_TM_ISDST      %%mktime_max_tm_isdst%%
+static const struct tm SYSTEM_MKTIME_MAX = {
+    %%mktime_max_tm_sec%%,
+    %%mktime_max_tm_min%%,
+    %%mktime_max_tm_hour%%,
+    %%mktime_max_tm_mday%%,
+    %%mktime_max_tm_mon%%,
+    %%mktime_max_tm_year%%,
+    %%mktime_max_tm_wday%%,
+    %%mktime_max_tm_yday%%,
+    %%mktime_max_tm_isdst%%
+#ifdef HAS_TM_TM_GMTOFF
+    ,%%mktime_max_tm_gmtoff%%
+#endif
 #ifdef HAS_TM_TM_ZONE
-    #define SYSTEM_MKTIME_MAX_TM_ZONE   "%%mktime_max_tm_zone%%"
+    ,"%%mktime_max_tm_zone%%"
 #endif
+};
+
+static const struct tm SYSTEM_MKTIME_MIN = {
+    %%mktime_min_tm_sec%%,
+    %%mktime_min_tm_min%%,
+    %%mktime_min_tm_hour%%,
+    %%mktime_min_tm_mday%%,
+    %%mktime_min_tm_mon%%,
+    %%mktime_min_tm_year%%,
+    %%mktime_min_tm_wday%%,
+    %%mktime_min_tm_yday%%,
+    %%mktime_min_tm_isdst%%
 #ifdef HAS_TM_TM_GMTOFF
-    #define SYSTEM_MKTIME_MAX_TM_GMTOFF %%mktime_max_tm_gmtoff%%
+    ,%%mktime_min_tm_gmtoff%%
 #endif
-
-#define SYSTEM_MKTIME_MIN_TM_SEC        %%mktime_min_tm_sec%%
-#define SYSTEM_MKTIME_MIN_TM_MIN        %%mktime_min_tm_min%%
-#define SYSTEM_MKTIME_MIN_TM_HOUR       %%mktime_min_tm_hour%%
-#define SYSTEM_MKTIME_MIN_TM_MDAY       %%mktime_min_tm_mday%%
-#define SYSTEM_MKTIME_MIN_TM_MON        %%mktime_min_tm_mon%%
-#define SYSTEM_MKTIME_MIN_TM_YEAR       %%mktime_min_tm_year%%
-#define SYSTEM_MKTIME_MIN_TM_WDAY       %%mktime_min_tm_wday%%
-#define SYSTEM_MKTIME_MIN_TM_YDAY       %%mktime_min_tm_yday%%
-#define SYSTEM_MKTIME_MIN_TM_ISDST      %%mktime_min_tm_isdst%%
 #ifdef HAS_TM_TM_ZONE
-    #define SYSTEM_MKTIME_MIN_TM_ZONE   "%%mktime_min_tm_zone%%"
+    ,"%%mktime_min_tm_zone%%"
 #endif
-#ifdef HAS_TM_TM_GMTOFF
-    #define SYSTEM_MKTIME_MIN_TM_GMTOFF %%mktime_min_tm_gmtoff%%
-#endif
+};
 
 
 /* Max/min for timegm() */
 #ifdef HAS_TIMEGM
-    #define SYSTEM_TIMEGM_MAX_TM_SEC        %%timegm_max_tm_sec%%
-    #define SYSTEM_TIMEGM_MAX_TM_MIN        %%timegm_max_tm_min%%
-    #define SYSTEM_TIMEGM_MAX_TM_HOUR       %%timegm_max_tm_hour%%
-    #define SYSTEM_TIMEGM_MAX_TM_MDAY       %%timegm_max_tm_mday%%
-    #define SYSTEM_TIMEGM_MAX_TM_MON        %%timegm_max_tm_mon%%
-    #define SYSTEM_TIMEGM_MAX_TM_YEAR       %%timegm_max_tm_year%%
-    #define SYSTEM_TIMEGM_MAX_TM_WDAY       %%timegm_max_tm_wday%%
-    #define SYSTEM_TIMEGM_MAX_TM_YDAY       %%timegm_max_tm_yday%%
-    #define SYSTEM_TIMEGM_MAX_TM_ISDST      %%timegm_max_tm_isdst%%
-    #ifdef HAS_TM_TM_ZONE
-        #define SYSTEM_TIMEGM_MAX_TM_ZONE   "%%timegm_max_tm_zone%%"
-    #endif
-    #ifdef HAS_TM_TM_GMTOFF
-        #define SYSTEM_TIMEGM_MAX_TM_GMTOFF %%timegm_max_tm_gmtoff%%
-    #endif
-    
-    #define SYSTEM_TIMEGM_MIN_TM_SEC        %%timegm_min_tm_sec%%
-    #define SYSTEM_TIMEGM_MIN_TM_MIN        %%timegm_min_tm_min%%
-    #define SYSTEM_TIMEGM_MIN_TM_HOUR       %%timegm_min_tm_hour%%
-    #define SYSTEM_TIMEGM_MIN_TM_MDAY       %%timegm_min_tm_mday%%
-    #define SYSTEM_TIMEGM_MIN_TM_MON        %%timegm_min_tm_mon%%
-    #define SYSTEM_TIMEGM_MIN_TM_YEAR       %%timegm_min_tm_year%%
-    #define SYSTEM_TIMEGM_MIN_TM_WDAY       %%timegm_min_tm_wday%%
-    #define SYSTEM_TIMEGM_MIN_TM_YDAY       %%timegm_min_tm_yday%%
-    #define SYSTEM_TIMEGM_MIN_TM_ISDST      %%timegm_min_tm_isdst%%
-    #ifdef HAS_TM_TM_ZONE
-        #define SYSTEM_TIMEGM_MIN_TM_ZONE   "%%timegm_min_tm_zone%%"
-    #endif
-    #ifdef HAS_TM_TM_GMTOFF
-        #define SYSTEM_TIMEGM_MIN_TM_GMTOFF %%timegm_min_tm_gmtoff%%
-    #endif
+static const struct tm SYSTEM_TIMEGM_MAX = {
+    %%timegm_max_tm_sec%%,
+    %%timegm_max_tm_min%%,
+    %%timegm_max_tm_hour%%,
+    %%timegm_max_tm_mday%%,
+    %%timegm_max_tm_mon%%,
+    %%timegm_max_tm_year%%,
+    %%timegm_max_tm_wday%%,
+    %%timegm_max_tm_yday%%,
+    %%timegm_max_tm_isdst%%
+#ifdef HAS_TM_TM_GMTOFF
+    ,%%timegm_max_tm_gmtoff%%
 #endif
+#ifdef HAS_TM_TM_ZONE
+    ,"%%timegm_max_tm_zone%%"
+#endif
+};
+
+static const struct tm SYSTEM_TIMEGM_MIN = {
+    %%timegm_min_tm_sec%%,
+    %%timegm_min_tm_min%%,
+    %%timegm_min_tm_hour%%,
+    %%timegm_min_tm_mday%%,
+    %%timegm_min_tm_mon%%,
+    %%timegm_min_tm_year%%,
+    %%timegm_min_tm_wday%%,
+    %%timegm_min_tm_yday%%,
+    %%timegm_min_tm_isdst%%
+#ifdef HAS_TM_TM_GMTOFF
+    ,%%timegm_min_tm_gmtoff%%
+#endif
+#ifdef HAS_TM_TM_ZONE
+    ,"%%timegm_min_tm_zone%%"
+#endif
+};
+#endif /* HAS_TIMEGM */
 
 #endif /* TIME64_LIMITS_H */




More information about the Pkg-perl-cvs-commits mailing list