diff options
author | pgkos <pg.kosinski@gmail.com> | 2018-11-26 18:59:24 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-11-26 18:59:24 +0100 |
commit | 518c72e57a9c787a2d59b0895263427b4774ecad (patch) | |
tree | e88d441e882aae5f98ded53f55ba97349a12964f /lib/pure | |
parent | ed8b4befbf3161c887f7b882ac6858708b67a503 (diff) | |
download | Nim-518c72e57a9c787a2d59b0895263427b4774ecad.tar.gz |
fixes #9800 (#9804) [backport]
* fixes #9800 * add tests for #9800
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/unicode.nim | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim index 664765954..712cc46c8 100644 --- a/lib/pure/unicode.nim +++ b/lib/pure/unicode.nim @@ -1941,9 +1941,9 @@ proc strip*(s: string, leading = true, trailing = true, e_i = l_i - 1 break dec(i) - let newLen = e_i - s_i + let newLen = e_i - s_i + 1 result = newStringOfCap(newLen) - if e_i > s_i: + if newLen > 0: result.add s[s_i .. e_i] proc repeat*(c: Rune, count: Natural): string {.noSideEffect, @@ -2161,6 +2161,9 @@ when isMainModule: doAssert s.split(' '.Rune, maxsplit = 1) == @["", "this is an example "] block stripTests: + doAssert(strip("") == "") + doAssert(strip(" ") == "") + doAssert(strip("y") == "y") doAssert(strip(" foofoofoo ") == "foofoofoo") doAssert(strip("sfoofoofoos", runes = ['s'.Rune]) == "foofoofoo") |