]>
Commit | Line | Data |
---|---|---|
66547547 JK |
1 | #include "../git-compat-util.h" |
2 | #undef gmtime | |
3 | #undef gmtime_r | |
4 | ||
5 | struct tm *git_gmtime(const time_t *timep) | |
6 | { | |
7 | static struct tm result; | |
8 | return git_gmtime_r(timep, &result); | |
9 | } | |
10 | ||
11 | struct tm *git_gmtime_r(const time_t *timep, struct tm *result) | |
12 | { | |
13 | struct tm *ret; | |
14 | ||
15 | memset(result, 0, sizeof(*result)); | |
16 | ret = gmtime_r(timep, result); | |
17 | ||
18 | /* | |
19 | * Rather than NULL, FreeBSD gmtime simply leaves the "struct tm" | |
20 | * untouched when it encounters overflow. Since "mday" cannot otherwise | |
21 | * be zero, we can test this very quickly. | |
22 | */ | |
23 | if (ret && !ret->tm_mday) { | |
24 | ret = NULL; | |
25 | errno = EOVERFLOW; | |
26 | } | |
27 | ||
28 | return ret; | |
29 | } |