summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorMiran <narimiran@disroot.org>2019-06-20 21:04:37 +0200
committerAndreas Rumpf <rumpf_a@web.de>2019-06-20 21:04:37 +0200
commit23e95dc6290b758d4d4e3b54d6c7a89143142066 (patch)
tree5033e2295a3c29d344062e05d27d75bacefc3561 /lib/pure
parentd6b0e46ee4b8dd8c92ce98c0172b21d0927602e7 (diff)
downloadNim-23e95dc6290b758d4d4e3b54d6c7a89143142066.tar.gz
[bugfix] fix `delete` in strutils and sequtils (#11535)
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/collections/sequtils.nim2
-rw-r--r--lib/pure/strutils.nim5
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim
index de100ead4..fd0018beb 100644
--- a/lib/pure/collections/sequtils.nim
+++ b/lib/pure/collections/sequtils.nim
@@ -432,7 +432,7 @@ proc delete*[T](s: var seq[T]; first, last: Natural) =
     assert outcome == dest
 
   var i = first
-  var j = last+1
+  var j = min(len(s), last+1)
   var newLen = len(s)-j+i
   while i < newLen:
     s[i].shallowCopy(s[j])
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index c5cc25625..2044edeb3 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -1494,8 +1494,11 @@ proc delete*(s: var string, first, last: int) {.noSideEffect,
     a.delete(1, 6)
     doAssert a == "ara"
 
+    a.delete(2, 999)
+    doAssert a == "ar"
+
   var i = first
-  var j = last+1
+  var j = min(len(s), last+1)
   var newLen = len(s)-j+i
   while i < newLen:
     s[i] = s[j]