Bugs 1207, 1301

Only apply the fix for time-zone offsetting on Windows, since Unix
is handling mktime differently. (Arguably we should also apply a
conversion for Unix systems, but the previous logic worked)
This commit is contained in:
James Turner 2014-01-03 19:51:58 +00:00
parent df57a23512
commit c6330b64f6

View File

@ -1137,12 +1137,21 @@ char *tzstring (const char* string)
time_t sgGMTime()
{
struct tm now;
// this was created to fix:
// https://code.google.com/p/flightgear-bugs/issues/detail?id=1207
// however applying the code on Unix causes bug:
// https://code.google.com/p/flightgear-bugs/issues/detail?id=1301
// One solution would be to deinfe our own 'timegm' as suggested here:
// http://linux.die.net/man/3/timegm
// but for the moment we'll assume time(0) on Unix is UTC, and hence we
// return it directly.
time_t now_sec = time(0);
#if defined(SG_WINDOWS)
struct tm now;
now = *gmtime(&now_sec);
#else
gmtime_r(&now_sec, &now);
#endif
return mktime(&now);
}
#else
return now_sec;
#endif
}