mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
bpo-28660: Make TextWrapper break long words on hyphens (GH-22721)
This commit is contained in:
parent
67f04878de
commit
b81c833ab5
3 changed files with 83 additions and 2 deletions
|
|
@ -215,8 +215,16 @@ class TextWrapper:
|
|||
# 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.
|
||||
if self.break_long_words:
|
||||
cur_line.append(reversed_chunks[-1][:space_left])
|
||||
reversed_chunks[-1] = reversed_chunks[-1][space_left:]
|
||||
end = space_left
|
||||
chunk = reversed_chunks[-1]
|
||||
if self.break_on_hyphens and len(chunk) > space_left:
|
||||
# break after last hyphen, but only if there are
|
||||
# non-hyphens before it
|
||||
hyphen = chunk.rfind('-', 0, space_left)
|
||||
if hyphen > 0 and any(c != '-' for c in chunk[:hyphen]):
|
||||
end = hyphen + 1
|
||||
cur_line.append(chunk[:end])
|
||||
reversed_chunks[-1] = chunk[end:]
|
||||
|
||||
# Otherwise, we have to preserve the long word intact. Only add
|
||||
# it to the current line if there's nothing already there --
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue