summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorryanc-signiq <ryanc@signiq.com>2018-03-08 15:33:41 +0800
committerAndreas Rumpf <rumpf_a@web.de>2018-03-08 08:33:41 +0100
commit67fd7a7f865e7e725dfcd4c2ec2c5840f3457f60 (patch)
tree02195ff37c5131eb82d3db90c1ad4da39a6afc47 /lib/pure
parent551d7b7dc17d0eb05cbc8fd935c584739ce66bb2 (diff)
downloadNim-67fd7a7f865e7e725dfcd4c2ec2c5840f3457f60.tar.gz
FIXUP: Removed +1 causing substr slicing to skip chars on first iteration of while loop (#7312)
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/strutils.nim7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index 0c35c1d52..ddd0e9e62 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -1250,7 +1250,7 @@ proc wordWrap*(s: string, maxLineWidth = 80,
     if len(word) > spaceLeft:
       if splitLongWords and len(word) > maxLineWidth:
         result.add(substr(word, 0, spaceLeft-1))
-        var w = spaceLeft+1
+        var w = spaceLeft
         var wordLeft = len(word) - spaceLeft
         while wordLeft > 0:
           result.add(newLine)
@@ -2514,6 +2514,11 @@ when isMainModule:
     outp = " this is a\nlong text\n--\nmuchlongerthan10chars\nand here\nit goes"
   doAssert wordWrap(inp, 10, false) == outp
 
+  let
+    longInp = """ThisIsOneVeryLongStringWhichWeWillSplitIntoEightSeparatePartsNow"""
+    longOutp = "ThisIsOn\neVeryLon\ngStringW\nhichWeWi\nllSplitI\nntoEight\nSeparate\nPartsNow"
+  doAssert wordWrap(longInp, 8, true) == longOutp
+
   doAssert formatBiggestFloat(1234.567, ffDecimal, -1) == "1234.567000"
   doAssert formatBiggestFloat(1234.567, ffDecimal, 0) == "1235."
   doAssert formatBiggestFloat(1234.567, ffDecimal, 1) == "1234.6"