29 lines
605 B
29 lines
605 B
#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; |
|
}
|
|
|