Fix #1146: TextWrap vs words 1-character shorter than the width.
Patch by Quentin Gallet-Gilles.
This commit is contained in:
parent
14404b68d8
commit
c6fde7293e
|
@ -398,6 +398,19 @@ How *do* you spell that odd word, anyways?
|
|||
' o'],
|
||||
subsequent_indent = ' '*15)
|
||||
|
||||
# bug 1146. Prevent a long word to be wrongly wrapped when the
|
||||
# preceding word is exactly one character shorter than the width
|
||||
self.check_wrap(self.text, 12,
|
||||
['Did you say ',
|
||||
'"supercalifr',
|
||||
'agilisticexp',
|
||||
'ialidocious?',
|
||||
'" How *do*',
|
||||
'you spell',
|
||||
'that odd',
|
||||
'word,',
|
||||
'anyways?'])
|
||||
|
||||
def test_nobreak_long(self):
|
||||
# Test with break_long_words disabled
|
||||
self.wrapper.break_long_words = 0
|
||||
|
|
|
@ -173,7 +173,12 @@ class TextWrapper:
|
|||
Handle a chunk of text (most likely a word, not whitespace) that
|
||||
is too long to fit in any line.
|
||||
"""
|
||||
space_left = max(width - cur_len, 1)
|
||||
# Figure out when indent is larger than the specified width, and make
|
||||
# sure at least one character is stripped off on every pass
|
||||
if width < 1:
|
||||
space_left = 1
|
||||
else:
|
||||
space_left = width - cur_len
|
||||
|
||||
# If we're allowed to break long words, then do so: put as much
|
||||
# of the next chunk onto the current line as will fit.
|
||||
|
|
Loading…
Reference in New Issue