14 lines
512 B
Python
14 lines
512 B
Python
def wrap(text, width):
|
|
"""
|
|
A word-wrap function that preserves existing line breaks
|
|
and most spaces in the text. Expects that existing line
|
|
breaks are posix newlines (\n).
|
|
"""
|
|
return reduce(lambda line, word, width=width: '%s%s%s' %
|
|
(line,
|
|
' \n'[(len(line)-line.rfind('\n')-1
|
|
+ len(word.split('\n',1)[0]
|
|
) >= width)],
|
|
word),
|
|
text.split(' ')
|
|
) |