diff options
author | Magnus Jöud <magnus.joud@med.lu.se> | 2015-10-14 15:29:27 +0200 |
---|---|---|
committer | Magnus Jöud <magnus.joud@med.lu.se> | 2015-10-14 15:29:27 +0200 |
commit | 755d89e32d39eb08e85a98b421909a7535051c3c (patch) | |
tree | 9cf0e77740b18c6b1260ee28d6bb06e9500e209e /lib | |
parent | 4e8e5af934d7c44f5c6fe659b4dcca1e16cf964d (diff) | |
download | Nim-755d89e32d39eb08e85a98b421909a7535051c3c.tar.gz |
modified strutils.split
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/strutils.nim | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 516ca953b..6eb87d91b 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -374,10 +374,9 @@ iterator split*(s: string, seps: set[char] = Whitespace, maxsplit: int = -1): st var first = last while last < len(s) and s[last] notin seps: inc(last) # BUGFIX! if first <= last-1: - if splits == 0: - yield substr(s, first, len(s)-1) - break + if splits == 0: last = len(s) yield substr(s, first, last-1) + if splits == 0: break dec(splits) iterator split*(s: string, sep: char, maxsplit: int = -1): string = @@ -414,10 +413,9 @@ iterator split*(s: string, sep: char, maxsplit: int = -1): string = while last <= len(s): var first = last while last < len(s) and s[last] != sep: inc(last) - if splits == 0: - yield substr(s, first, len(s)-1) - break + if splits == 0: last = len(s) yield substr(s, first, last-1) + if splits == 0: break dec(splits) inc(last) @@ -432,10 +430,9 @@ iterator split*(s: string, sep: string, maxsplit: int = -1): string = var first = last while last < len(s) and s.substr(last, last + <sep.len) != sep: inc(last) - if splits == 0: - yield substr(s, first, len(s)-1) - break + if splits == 0: last = len(s) yield substr(s, first, last-1) + if splits == 0: break dec(splits) inc(last, sep.len) |