gh-139065: Fix trailing space before long word in textwrap (GH-139070)

Fix trailing space before a wrapped long word if the line length with
a space is exactly "width".
This commit is contained in:
Serhiy Storchaka 2025-10-10 16:29:18 +03:00 committed by GitHub
parent 5c942f11cd
commit 1c598e0436
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 5 additions and 3 deletions

View file

@ -605,7 +605,7 @@ def test_break_long(self):
# bug 1146. Prevent a long word to be wrongly wrapped when the # bug 1146. Prevent a long word to be wrongly wrapped when the
# preceding word is exactly one character shorter than the width # preceding word is exactly one character shorter than the width
self.check_wrap(self.text, 12, self.check_wrap(self.text, 12,
['Did you say ', ['Did you say',
'"supercalifr', '"supercalifr',
'agilisticexp', 'agilisticexp',
'ialidocious?', 'ialidocious?',
@ -633,7 +633,7 @@ def test_nobreak_long(self):
def test_max_lines_long(self): def test_max_lines_long(self):
self.check_wrap(self.text, 12, self.check_wrap(self.text, 12,
['Did you say ', ['Did you say',
'"supercalifr', '"supercalifr',
'agilisticexp', 'agilisticexp',
'[...]'], '[...]'],

View file

@ -211,7 +211,7 @@ def _handle_long_word(self, reversed_chunks, cur_line, cur_len, width):
# 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.
if self.break_long_words: if self.break_long_words and space_left > 0:
end = space_left end = space_left
chunk = reversed_chunks[-1] chunk = reversed_chunks[-1]
if self.break_on_hyphens and len(chunk) > space_left: if self.break_on_hyphens and len(chunk) > space_left:

View file

@ -0,0 +1,2 @@
Fix trailing space before a wrapped long word if the line length is exactly
*width* in :mod:`textwrap`.