diff options
author | def <dennis@felsin9.de> | 2014-07-09 20:40:01 +0200 |
---|---|---|
committer | def <dennis@felsin9.de> | 2014-07-09 20:40:01 +0200 |
commit | 66fad123916924b42228487067eb155af830bef1 (patch) | |
tree | adfe6c6093df6e7972273c3866618255a0a1b372 /lib | |
parent | ec12922c43d132bbff452b1ea57bdabb5b8695de (diff) | |
download | Nim-66fad123916924b42228487067eb155af830bef1.tar.gz |
Change wordwrap to remove separators at newlines
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/strutils.nim | 8 |
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".} = |