Merge branch 'stringify-array' of https://github.com/krux02/Nim into krux02-stringify-array

This commit is contained in:
Andreas Rumpf 2017-10-09 23:46:24 +02:00
commit db0d353281
9 changed files with 89 additions and 71 deletions

View file

@ -10,7 +10,7 @@
## Serialization utilities for the compiler.
import strutils
proc c_sprintf(buf, frmt: cstring) {.importc: "sprintf", header: "<stdio.h>", nodecl, varargs.}
proc c_snprintf(s: cstring; n:uint; frmt: cstring): cint {.importc: "snprintf", header: "<stdio.h>", nodecl, varargs.}
proc toStrMaxPrecision*(f: BiggestFloat, literalPostfix = ""): string =
if f != f:
@ -22,8 +22,8 @@ proc toStrMaxPrecision*(f: BiggestFloat, literalPostfix = ""): string =
else: result = "-INF"
else:
var buf: array[0..80, char]
c_sprintf(buf, "%#.16e" & literalPostfix, f)
result = $buf
discard c_snprintf(buf.cstring, buf.len.uint, "%#.16e%s", f, literalPostfix.cstring)
result = $buf.cstring
proc encodeStr*(s: string, result: var string) =
for i in countup(0, len(s) - 1):
@ -133,4 +133,3 @@ iterator decodeStrArray*(s: cstring): string =
while s[i] != '\0':
yield decodeStr(s, i)
if s[i] == ' ': inc i