diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-03-18 10:42:05 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-03-18 10:42:11 +0100 |
commit | 9f5492becd2c8f189983912029893c439951ad1f (patch) | |
tree | 11fb8c61a2e5a652310cf7ccca9a8e791091fd44 /lib | |
parent | a20a8e6adb9847cdbae2862a004d762a28d8c454 (diff) | |
download | Nim-9f5492becd2c8f189983912029893c439951ad1f.tar.gz |
strutils.nim: make removeSuffix robust on empty strings
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/strutils.nim | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index a87df7f52..9383675f4 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -2229,20 +2229,16 @@ proc removeSuffix*(s: var string, chars: set[char] = Newlines) {. ## userInput == "Hello World" ## otherInput.removeSuffix({'!', '?'}) ## otherInput == "Hello!?" - + if s.len == 0: return var last = len(s) - 1 - if chars == Newlines: if s[last] == '\10': last -= 1 - if s[last] == '\13': last -= 1 - else: if s[last] in chars: last -= 1 - s.setLen(last + 1) proc removeSuffix*(s: var string, c: char) {. @@ -2263,13 +2259,10 @@ proc removeSuffix*(s: var string, suffix: string) {. ## answers = "yeses" ## answers.removeSuffix("es") ## answers == "yes" - var newLen = s.len - if s.endsWith(suffix): newLen -= len(suffix) - - s.setLen(newLen) + s.setLen(newLen) when isMainModule: doAssert align("abc", 4) == " abc" |