Closed codehz closed 5 years ago
suggested implemention:
proc fillString(dest: var string; src: cstring; srcLen: int) =
if srcLen == 0: return
when defined(nimNoNilSeqs):
setLen(dest, srcLen)
else:
if dest.isNil: dest = newString(srcLen)
else: setLen(dest, srcLen)
copyMem(unsafeAddr(dest[0]), src, srcLen)
when field is empty string(srcLen = 0), it crash at
copyMem(unsafeAddr(dest[0]), src, srcLen)
anddest[srcLen] = '\0'
is not needed for nim string type