| #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; |
| } |