diff --git a/Lib/string.py b/Lib/string.py index 94e91570c5c..f358ac47788 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -63,10 +63,14 @@ def split(s): # Split a list into fields separated by a given string # NB: splitfields(s, ' ') is NOT the same as split(s)! +# splitfields(s, '') is illegal +splitfields_error = 'string.splitfields called with empty separator' def splitfields(s, sep): res = [] - ns = len(s) nsep = len(sep) + if nsep == 0: + raise splitfields_error + ns = len(s) i = j = 0 while j+nsep <= ns: if s[j:j+nsep] == sep: diff --git a/Lib/stringold.py b/Lib/stringold.py index 94e91570c5c..f358ac47788 100644 --- a/Lib/stringold.py +++ b/Lib/stringold.py @@ -63,10 +63,14 @@ def split(s): # Split a list into fields separated by a given string # NB: splitfields(s, ' ') is NOT the same as split(s)! +# splitfields(s, '') is illegal +splitfields_error = 'string.splitfields called with empty separator' def splitfields(s, sep): res = [] - ns = len(s) nsep = len(sep) + if nsep == 0: + raise splitfields_error + ns = len(s) i = j = 0 while j+nsep <= ns: if s[j:j+nsep] == sep: