diff options
author | Araq <rumpf_a@web.de> | 2015-01-26 12:55:36 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-01-27 01:33:48 +0100 |
commit | b2d18899515809c508d656efdd800a94c7118bd9 (patch) | |
tree | 464b0c0e4fe056c2f5f39d3df04b224c65f167be | |
parent | efb5ec3e734fa4042555c41fde7a117b4b83ba46 (diff) | |
download | Nim-b2d18899515809c508d656efdd800a94c7118bd9.tar.gz |
bugfix: don't overwrite the number value in case of a parsing error
-rw-r--r-- | lib/pure/parseutils.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/pure/parseutils.nim b/lib/pure/parseutils.nim index 1efb141fc..9844201fe 100644 --- a/lib/pure/parseutils.nim +++ b/lib/pure/parseutils.nim @@ -228,7 +228,7 @@ proc parseInt*(s: string, number: var int, start = 0): int {. if (sizeof(int) <= 4) and ((res < low(int)) or (res > high(int))): raise newException(OverflowError, "overflow") - else: + elif result != 0: number = int(res) proc parseBiggestFloat*(s: string, number: var BiggestFloat, start = 0): int {. @@ -244,7 +244,8 @@ proc parseFloat*(s: string, number: var float, start = 0): int {. ## error. var bf: BiggestFloat result = parseBiggestFloat(s, bf, start) - number = bf + if result != 0: + number = bf type InterpolatedKind* = enum ## describes for `interpolatedFragments` |