From f06f9326698b67dd3483499c3aac9e082e20c0b6 Mon Sep 17 00:00:00 2001 From: Xie Yanbo Date: Sat, 16 Nov 2019 20:24:33 +0800 Subject: [PATCH] fix: fixed length string with terminating character --- src/leveldb.nim | 10 +++++++--- tests/test.nim | 9 +++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/leveldb.nim b/src/leveldb.nim index c82618b..4ad56df 100644 --- a/src/leveldb.nim +++ b/src/leveldb.nim @@ -60,6 +60,10 @@ proc put*(self: LevelDb, key: string, value: string, sync = true) = key, key.len.csize, value, value.len.csize, addr errPtr) checkError(errPtr) +proc newString(cstr: cstring, length: csize): string = + result = newString(length) + copyMem(unsafeAddr result[0], cstr, length) + proc get*(self: LevelDb, key: string): Option[string] = var size: csize var errPtr: cstring = nil @@ -69,7 +73,7 @@ proc get*(self: LevelDb, key: string): Option[string] = if s == nil: result = none(string) else: - result = some ($s)[0.. 0: - result[0] = some ($str)[0.. 0: - result[1] = some ($str)[0..