diff -rupN boost_1_43_0/boost/date_time/c_time.hpp boost_vms_1_43_0/boost/date_time/c_time.hpp --- boost_1_43_0/boost/date_time/c_time.hpp 2010-01-10 21:17:23.000000000 +0200 +++ boost_vms_1_43_0/boost/date_time/c_time.hpp 2010-07-11 11:34:20.000000000 +0300 @@ -57,7 +57,15 @@ namespace date_time { static std::tm* localtime(const std::time_t* t, std::tm* result) { // localtime_r() not in namespace std??? + #if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 + std::tm tmp; + if(!localtime_r(t,&tmp)) + result = 0; + else + *result = tmp; + #else result = localtime_r(t, result); + #endif if (!result) boost::throw_exception(std::runtime_error("could not convert calendar time to local time")); return result; @@ -67,7 +75,15 @@ namespace date_time { static std::tm* gmtime(const std::time_t* t, std::tm* result) { // gmtime_r() not in namespace std??? + #if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 + std::tm tmp; + if(!gmtime_r(t,&tmp)) + result = 0; + else + *result = tmp; + #else result = gmtime_r(t, result); + #endif if (!result) boost::throw_exception(std::runtime_error("could not convert calendar time to UTC time")); return result;