diff options
author | Charles Blake <cblake@csail.mit.edu> | 2015-08-03 12:27:30 -0400 |
---|---|---|
committer | Charles Blake <cblake@csail.mit.edu> | 2015-08-03 12:27:30 -0400 |
commit | 7cb9f363d65d9ad3c52bf4cf35af3eb71988ac06 (patch) | |
tree | 55f8d59c37ec9dcaeaac7a9d15ea9b498929cbc2 /lib | |
parent | c373c7209ab01ce9b2570fb0134ad52457f9ee91 (diff) | |
parent | 85699b744ddeefcb53996073168c205f00772a6d (diff) | |
download | Nim-7cb9f363d65d9ad3c52bf4cf35af3eb71988ac06.tar.gz |
Merge ../Nim into devel
Diffstat (limited to 'lib')
-rw-r--r-- | lib/core/macros.nim | 5 | ||||
-rw-r--r-- | lib/pure/times.nim | 16 |
2 files changed, 15 insertions, 6 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index c89fa354a..5d852cdb1 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -719,10 +719,13 @@ proc `$`*(node: NimNode): string {.compileTime.} = proc ident*(name: string): NimNode {.compileTime,inline.} = newIdentNode(name) ## Create a new ident node from a string -iterator children*(n: NimNode): NimNode {.inline.}= +iterator items*(n: NimNode): NimNode {.inline.} = + ## Iterates over the children of the NimNode ``n``. for i in 0 ..< n.len: yield n[i] +iterator children*(n: NimNode): NimNode {.inline.} = items + template findChild*(n: NimNode; cond: expr): NimNode {. immediate, dirty.} = ## Find the first child node matching condition (or nil). diff --git a/lib/pure/times.nim b/lib/pure/times.nim index f1315a9fd..78629af71 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: "<time.h>".}: int - tzname {.importc, header: "<time.h>" .}: array[0..1, cstring] - when defined(posix) and not defined(JS): type TimeImpl {.importc: "time_t", header: "<time.h>".} = int @@ -49,6 +44,9 @@ when defined(posix) and not defined(JS): proc posix_gettimeofday(tp: var Timeval, unused: pointer = nil) {. importc: "gettimeofday", header: "<sys/time.h>".} + var + timezone {.importc, header: "<time.h>".}: int + tzname {.importc, header: "<time.h>" .}: array[0..1, cstring] # we also need tzset() to make sure that tzname is initialized proc tzset() {.importc, header: "<time.h>".} # 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: "<time.h>".} = int64 + # visual c's c runtime exposes these under a different name + var + timezone {.importc: "_timezone", header: "<time.h>".}: int + tzname {.importc: "_tzname", header: "<time.h>"}: array[0..1, cstring] else: type TimeImpl {.importc: "time_t", header: "<time.h>".} = int32 + var + timezone {.importc, header: "<time.h>".}: int + tzname {.importc, header: "<time.h>" .}: array[0..1, cstring] type Time* = distinct TimeImpl + elif defined(JS): type |