summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-03-18 10:42:05 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-03-18 10:42:11 +0100
commit9f5492becd2c8f189983912029893c439951ad1f (patch)
tree11fb8c61a2e5a652310cf7ccca9a8e791091fd44 /lib
parenta20a8e6adb9847cdbae2862a004d762a28d8c454 (diff)
downloadNim-9f5492becd2c8f189983912029893c439951ad1f.tar.gz
strutils.nim: make removeSuffix robust on empty strings
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/strutils.nim11
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"