#include "../git-compat-util.h" #undef gmtime #undef gmtime_r struct tm *git_gmtime(const time_t *timep) { static struct tm result; return git_gmtime_r(timep, &result); } struct tm *git_gmtime_r(const time_t *timep, struct tm *result) { struct tm *ret; memset(result, 0, sizeof(*result)); ret = gmtime_r(timep, result); /* * Rather than NULL, FreeBSD gmtime simply leaves the "struct tm" * untouched when it encounters overflow. Since "mday" cannot otherwise * be zero, we can test this very quickly. */ if (ret && !ret->tm_mday) { ret = NULL; errno = EOVERFLOW; } return ret; }