diff options
-rw-r--r-- | lib/pure/strutils.nim | 3 | ||||
-rw-r--r-- | tests/stdlib/tstrutil.nim | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 834e7db6a..2a64e70d9 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -776,7 +776,8 @@ proc countLines*(s: string): int {.noSideEffect, ## ## In this context, a line is any string seperated by a newline combination. ## A line can be an empty string. - var i = 1 + result = 1 + var i = 0 while i < s.len: case s[i] of '\c': diff --git a/tests/stdlib/tstrutil.nim b/tests/stdlib/tstrutil.nim index b5e3db4e2..fef1b38c2 100644 --- a/tests/stdlib/tstrutil.nim +++ b/tests/stdlib/tstrutil.nim @@ -89,9 +89,21 @@ proc testRFind = assert "0123456789ABCDEFGAH".rfind({'A'..'C'}, 13) == 12 assert "0123456789ABCDEFGAH".rfind({'G'..'H'}, 13) == -1 +proc testCountLines = + proc assertCountLines(s: string) = assert s.countLines == s.splitLines.len + assertCountLines("") + assertCountLines("\n") + assertCountLines("\n\n") + assertCountLines("abc") + assertCountLines("abc\n123") + assertCountLines("abc\n123\n") + assertCountLines("\nabc\n123") + assertCountLines("\nabc\n123\n") + testDelete() testFind() testRFind() +testCountLines() assert(insertSep($1000_000) == "1_000_000") assert(insertSep($232) == "232") |