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? ...@@ -398,6 +398,19 @@ How *do* you spell that odd word, anyways?
' o'], ' o'],
subsequent_indent = ' '*15) 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): def test_nobreak_long(self):
# Test with break_long_words disabled # Test with break_long_words disabled
self.wrapper.break_long_words = 0 self.wrapper.break_long_words = 0
......
...@@ -173,7 +173,12 @@ class TextWrapper: ...@@ -173,7 +173,12 @@ class TextWrapper:
Handle a chunk of text (most likely a word, not whitespace) that Handle a chunk of text (most likely a word, not whitespace) that
is too long to fit in any line. 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 # 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. # of the next chunk onto the current line as will fit.
......
...@@ -369,6 +369,9 @@ Core and builtins ...@@ -369,6 +369,9 @@ Core and builtins
Library 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 - #1693149: trace.py --ignore-module - accept multiple comma-separated
modules to be given. 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