summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authordef <dennis@felsin9.de>2014-07-09 20:40:01 +0200
committerdef <dennis@felsin9.de>2014-07-09 20:40:01 +0200
commit66fad123916924b42228487067eb155af830bef1 (patch)
treeadfe6c6093df6e7972273c3866618255a0a1b372 /lib
parentec12922c43d132bbff452b1ea57bdabb5b8695de (diff)
downloadNim-66fad123916924b42228487067eb155af830bef1.tar.gz
Change wordwrap to remove separators at newlines
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/strutils.nim8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index e642f6a99..51392ba50 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -535,7 +535,12 @@ proc wordWrap*(s: string, maxLineWidth = 80,
   ## word wraps `s`.
   result = newStringOfCap(s.len + s.len shr 6)
   var spaceLeft = maxLineWidth
+  var lastSep = ""
   for word, isSep in tokenize(s, seps):
+    if isSep:
+      lastSep = word
+      spaceLeft = spaceLeft - len(word)
+      continue
     if len(word) > spaceLeft:
       if splitLongWords and len(word) > maxLineWidth:
         result.add(substr(word, 0, spaceLeft-1))
@@ -554,7 +559,8 @@ proc wordWrap*(s: string, maxLineWidth = 80,
         result.add(word)
     else:
       spaceLeft = spaceLeft - len(word)
-      result.add(word)
+      result.add(lastSep & word)
+      lastSep.setLen(0)
 
 proc unindent*(s: string, eatAllIndent = false): string {.
                noSideEffect, rtl, extern: "nsuUnindent".} =