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)
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);
+ return mktime(&now);
#else
- gmtime_r(&now_sec, &now);
+ return now_sec;
#endif
- return mktime(&now);
-}
\ No newline at end of file
+}