diff --git a/lib/pure/times.nim b/lib/pure/times.nim index f1315a9fd7..78629af719 100644 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -26,11 +26,6 @@ type WeekDay* = enum ## represents a weekday dMon, dTue, dWed, dThu, dFri, dSat, dSun -when not defined(JS): - var - timezone {.importc, header: "".}: int - tzname {.importc, header: "" .}: array[0..1, cstring] - when defined(posix) and not defined(JS): type TimeImpl {.importc: "time_t", header: "".} = int @@ -49,6 +44,9 @@ when defined(posix) and not defined(JS): proc posix_gettimeofday(tp: var Timeval, unused: pointer = nil) {. importc: "gettimeofday", header: "".} + var + timezone {.importc, header: "".}: int + tzname {.importc, header: "" .}: array[0..1, cstring] # we also need tzset() to make sure that tzname is initialized proc tzset() {.importc, header: "".} # calling tzset() implicitly to initialize tzname data. @@ -60,11 +58,19 @@ elif defined(windows): when defined(vcc): # newest version of Visual C++ defines time_t to be of 64 bits type TimeImpl {.importc: "time_t", header: "".} = int64 + # visual c's c runtime exposes these under a different name + var + timezone {.importc: "_timezone", header: "".}: int + tzname {.importc: "_tzname", header: ""}: array[0..1, cstring] else: type TimeImpl {.importc: "time_t", header: "".} = int32 + var + timezone {.importc, header: "".}: int + tzname {.importc, header: "" .}: array[0..1, cstring] type Time* = distinct TimeImpl + elif defined(JS): type