Skip to content

Commit 3913811

Browse files
Kevin MatochaKevin Matocha
Kevin Matocha
authored and
Kevin Matocha
committed
Add a space for special case of wrapping of long words
1 parent 1a9edbd commit 3913811

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

adafruit_display_text/__init__.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,23 +62,36 @@ def measure(text):
6262
swidth = measure(" ")
6363
firstword = True
6464
for line_in_input in string.split("\n"):
65+
newline = True
6566
for index, word in enumerate(line_in_input.split(" ")):
6667
wwidth = measure(word)
6768
word_parts = []
6869
cur_part = ""
6970

7071
if wwidth > max_width:
7172
for char in word:
73+
if newline:
74+
extraspace = 0
75+
else:
76+
extraspace = swidth
7277
if (
7378
measure("".join(partial))
7479
+ measure(cur_part)
7580
+ measure(char)
7681
+ measure("-")
82+
+ extraspace
7783
> max_width
7884
):
79-
word_parts.append("".join(partial) + cur_part + "-")
85+
if cur_part:
86+
if newline:
87+
word_parts.append("".join(partial) + cur_part + "-")
88+
else:
89+
word_parts.append("".join(partial) + " " + cur_part + "-")
90+
else:
91+
word_parts.append("".join(partial))
8092
cur_part = char
8193
partial = [indent1]
94+
newline = True
8295
else:
8396
cur_part += char
8497
if cur_part:
@@ -103,6 +116,8 @@ def measure(text):
103116
lines.append("".join(partial))
104117
partial = [indent1, word]
105118
width = measure(indent1) + wwidth
119+
if newline:
120+
newline = False
106121

107122
lines.append("".join(partial))
108123
partial = [indent1]

0 commit comments

Comments
 (0)