Kaydet (Commit) c6fde729 authored tarafından Georg Brandl's avatar Georg Brandl

Fix #1146: TextWrap vs words 1-character shorter than the width.

Patch by Quentin Gallet-Gilles.
üst 14404b68
......@@ -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.
......
......@@ -369,6 +369,9 @@ Core and builtins
Library
-------
- #1146: fix how textwrap breaks a long word that would start in the
last column of a line.
- #1693149: trace.py --ignore-module - accept multiple comma-separated
modules to be given.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment