From 23e95dc6290b758d4d4e3b54d6c7a89143142066 Mon Sep 17 00:00:00 2001 From: Miran Date: Thu, 20 Jun 2019 21:04:37 +0200 Subject: [bugfix] fix `delete` in strutils and sequtils (#11535) --- lib/pure/collections/sequtils.nim | 2 +- lib/pure/strutils.nim | 5 ++++- 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] -- cgit 1.4.1-2-gfad0