Michael G Schwern wrote:
Michael G Schwern wrote:
John E. Malmberg wrote:
Michael G Schwern wrote:
John E. Malmberg wrote:
Default:

Thanks, that looks all correct.  If you could try the latest version
of the
code that would be great.  It makes it more accurate for systems which
have
silly failure points, like Y10K.
http://code.google.com/p/y2038/source/browse/trunk/bin/check_max.c
EAGLE> cc check_max
EAGLE> link check_max
EAGLE> run check_max
              gmtime max 4294967295
           localtime max 4294967295
              gmtime min 0
           localtime min 0

EAGLE> cc check_max/define=__SIGNED_INT_TIME_T
EAGLE> link check_max
EAGLE> run check_max
              gmtime max 2147483647
           localtime max 2147483647
              gmtime min 3221225472
           localtime min 3221225472
Well that's unsettling.  Any ideas?

I've dusted off my OpenVMS testdrive account and tried the repaired
check_max.c and got...

$ cc check_max
$ link check_max
$ run check_max
              gmtime max 4294967295
           localtime max 4294967295
              gmtime min 0
           localtime min 0

$ cc check_max/define=__SIGNED_INT_TIME_T
$ link check_max
$ run check_max
              gmtime max 2147483647
           localtime max 2147483647
              gmtime min 0
           localtime min 0

Which, as it turns out, is correct because...

bash$ test_date -1
input: -1, time: -1
localtime(-1): Sun Feb  7 01:28:15 2106

gmtime(-1): Sun Feb  7 06:28:15 2106

Whoopsie.  I'd imagine tm.tm_year remains unsigned.

I may be a bit behind on applying eco's (bugfixes) to my home system.

I did find and report to HP/VMS that one of the header files was using an unsigned int instead of time_t back when I was investigating the Archive::Tar issues with VMS.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to