From 6deda5a973312e86fe58e319e97afd93bc07c82d Mon Sep 17 00:00:00 2001 From: dom96 Date: Fri, 23 Sep 2011 21:43:24 +0100 Subject: Fixed string concatenation and other bugs in the JS backend. Fixed a small bug in the IRC module. --- lib/pure/irc.nim | 8 +++++++- lib/pure/times.nim | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'lib/pure') diff --git a/lib/pure/irc.nim b/lib/pure/irc.nim index 5a4c815f6..0397502cd 100644 --- a/lib/pure/irc.nim +++ b/lib/pure/irc.nim @@ -70,7 +70,12 @@ type proc send*(irc: var TIRC, message: string) = ## Sends ``message`` as a raw command. It adds ``\c\L`` for you. - irc.sock.send(message & "\c\L") + try: + irc.sock.send(message & "\c\L") + except EOS: + # Assuming disconnection of every EOS could be bad, + # but I can't exactly check for EBrokenPipe. + irc.connected = false proc privmsg*(irc: var TIRC, target, message: string) = ## Sends ``message`` to ``target``. ``Target`` can be a channel, or a user. @@ -199,6 +204,7 @@ proc poll*(irc: var TIRC, ev: var TIRCEvent, ## ## This function should be called often as it also handles pinging ## the server. + if not irc.connected: ev.typ = EvDisconnected var line = "" var socks = @[irc.sock] var ret = socks.select(timeout) diff --git a/lib/pure/times.nim b/lib/pure/times.nim index da23d4615..378d6ae80 100755 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim @@ -52,7 +52,7 @@ elif defined(windows): elif defined(ECMAScript): type - TTime* {.final.} = object + TTime* {.final, importc.} = object getDay: proc (): int getFullYear: proc (): int getHours: proc (): int @@ -62,6 +62,7 @@ elif defined(ECMAScript): getSeconds: proc (): int getTime: proc (): int getTimezoneOffset: proc (): int + getDate: proc (): int getUTCDate: proc (): int getUTCFullYear: proc (): int getUTCHours: proc (): int @@ -310,7 +311,8 @@ when not defined(ECMAScript): result = toFloat(int(clock())) / toFloat(clocksPerSec) else: - proc getTime(): TTime {.importc: "new Date", nodecl.} + proc newDate(): TTime {.importc: "new Date", nodecl.} + proc getTime(): TTime = return newDate() const weekDays: array [0..6, TWeekDay] = [ @@ -346,7 +348,7 @@ else: result.setDate(timeInfo.monthday) proc `$`(timeInfo: TTimeInfo): string = return $(TimeInfoToTIme(timeInfo)) - proc `$`(time: TTime): string = $time.toLocaleString() + proc `$`(time: TTime): string = return $time.toLocaleString() proc `-` (a, b: TTime): int64 = return a.getTime() - b.getTime() -- cgit 1.4.1-2-gfad0