Guard against calling split with an empty string as a separator. Fixes #5119

This commit is contained in:
Chris Heller
2016-12-16 01:33:44 -08:00
parent 2bb49136de
commit 40d034b7e3
2 changed files with 24 additions and 0 deletions

View File

@@ -808,6 +808,11 @@ proc split*(s: string, sep: string, maxsplit: int = -1): seq[string] {.noSideEff
##
## Substrings are separated by the string `sep`. This is a wrapper around the
## `split iterator <#split.i,string,string>`_.
##
## If `sep` is an empty string, `ValueError` is raised.
if sep.len == 0:
raise newException(ValueError, "invalid separator: empty string not allowed")
accumulateResult(split(s, sep, maxsplit))
proc rsplit*(s: string, seps: set[char] = Whitespace,