From ad896f03e8551db7387904ba3da7ed3ac741235b Mon Sep 17 00:00:00 2001 From: Charlie Barto Date: Fri, 31 Jul 2015 15:08:53 -0400 Subject: [PATCH 1/2] import the correct symbols on windows --- lib/pure/times.nim | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/pure/times.nim b/lib/pure/times.nim index 5f8835c6a7..ad8f77dbf9 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. @@ -65,7 +63,10 @@ elif defined(windows): type Time* = distinct TimeImpl - + + var + timezone {.importc: "_timezone", header: "".}: int + tzname {.importc: "_tzname", header: ""}: array[0..1, cstring] elif defined(JS): type Time* {.importc.} = object From 4d6bcbc2f43d8556bd9dd7c5f997e6b769619a94 Mon Sep 17 00:00:00 2001 From: Charlie Barto Date: Sun, 2 Aug 2015 18:55:35 -0400 Subject: [PATCH 2/2] make this change VCC specific --- lib/pure/times.nim | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/pure/times.nim b/lib/pure/times.nim index ad8f77dbf9..a8ba7fe972 100644 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -58,15 +58,20 @@ 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 - var - timezone {.importc: "_timezone", header: "".}: int - tzname {.importc: "_tzname", header: ""}: array[0..1, cstring] + elif defined(JS): type Time* {.importc.} = object