diff options
Diffstat (limited to 'lib/system.nim')
-rw-r--r-- | lib/system.nim | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/system.nim b/lib/system.nim index c0e95a5d2..c28479a44 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2580,7 +2580,19 @@ template once*(body: untyped): untyped = {.pop.} # warning[GcMem]: off, warning[Uninit]: off -proc substr*(s: string, first, last: int): string = +proc substr*(s: openArray[char]): string = + ## Copies a slice of `s` into a new string and returns this new + ## string. + runnableExamples: + let a = "abcdefgh" + assert a.substr(2, 5) == "cdef" + assert a.substr(2) == "cdefgh" + assert a.substr(5, 99) == "fgh" + result = newString(s.len) + for i, ch in s: + result[i] = ch + +proc substr*(s: string, first, last: int): string = # A bug with `magic: Slice` requires this to exist this way ## Copies a slice of `s` into a new string and returns this new ## string. ## |