]> git.mxchange.org Git - simgear.git/commitdiff
Bugs 1207, 1301
authorJames Turner <zakalawe@mac.com>
Fri, 3 Jan 2014 19:51:58 +0000 (19:51 +0000)
committerJames Turner <zakalawe@mac.com>
Fri, 3 Jan 2014 19:51:58 +0000 (19:51 +0000)
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)

simgear/timing/lowleveltime.cxx

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