Skip to content

Commit

Permalink
strip minor improvement (#16444)
Browse files Browse the repository at this point in the history
* strip minor improvement
* add more tests
* Update tests/stdlib/tstrutils.nim

Co-authored-by: Timothee Cour <[email protected]>
  • Loading branch information
ringabout and timotheecour authored Dec 23, 2020
1 parent 8d913a5 commit 417c250
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/pure/strutils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -2813,7 +2813,7 @@ func strip*(s: string, leading = true, trailing = true,
if leading:
while first <= last and s[first] in chars: inc(first)
if trailing:
while last >= 0 and s[last] in chars: dec(last)
while last >= first and s[last] in chars: dec(last)
result = substr(s, first, last)

func stripLineEnd*(s: var string) =
Expand Down
13 changes: 13 additions & 0 deletions tests/stdlib/tstrutils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,19 @@ template main() =
doAssert strip("sfoofoofoos", leading = false, chars = {'s'}) == "sfoofoofoo"
doAssert strip("sfoofoofoos", trailing = false, chars = {'s'}) == "foofoofoos"

block:
let a = "xxxxxx"
doAssert a.strip(chars={'x'}).len == 0

doAssert "".strip(chars={'x'}).len == 0
doAssert " ".strip(chars={'x'}) == " "
doAssert "xxx xxx".strip(chars={'x'}) == " "
doAssert "xxx wind".strip(chars={'x'}) == " wind"
doAssert "xxx iii".strip(chars={'i'}) == "xxx "
doAssert "x".strip(leading = false, chars={'x'}).len == 0
doAssert "x".strip(trailing = false, chars={'x'}).len == 0
doAssert "x".strip(leading = false, trailing = false, chars={'x'}) == "x"

block: # split
var ret: seq[string] # or use `toSeq` or `collect`
for p in split("/home/a1:xyz:/usr/bin", {':'}): ret.add p
Expand Down

0 comments on commit 417c250

Please sign in to comment.