fixes #6046 parsecfg failed to parse negative int (#6097)

This commit is contained in:
andri lim
2017-07-14 21:28:39 +07:00
committed by Andreas Rumpf
parent 8bdcade1a0
commit ca0155a458
2 changed files with 30 additions and 3 deletions

View File

@@ -320,9 +320,13 @@ proc rawGetTok(c: var CfgParser, tok: var Token) =
tok.literal = "="
of '-':
inc(c.bufpos)
if c.buf[c.bufpos] == '-': inc(c.bufpos)
tok.kind = tkDashDash
tok.literal = "--"
if c.buf[c.bufpos] == '-':
inc(c.bufpos)
tok.kind = tkDashDash
tok.literal = "--"
else:
dec(c.bufpos)
getSymbol(c, tok)
of ':':
tok.kind = tkColon
inc(c.bufpos)

View File

@@ -0,0 +1,23 @@
discard """
output: '''OK'''
"""
#bug #6046
import parsecfg
var config = newConfig()
config.setSectionKey("foo","bar","-1")
config.setSectionKey("foo","foo","abc")
config.writeConfig("test.ini")
# test.ini now contains
# [foo]
# bar=-1
# foo=abc
var config2 = loadConfig("test.ini")
let bar = config2.getSectionValue("foo","bar")
let foo = config2.getSectionValue("foo","foo")
assert(bar == "-1")
assert(foo == "abc")
echo "OK"