Skip to content

Commit 794451b

Browse files
committed
fix newlines getting removed by wrap_text_to_pixels
1 parent 2323181 commit 794451b

File tree

1 file changed

+45
-34
lines changed

1 file changed

+45
-34
lines changed

adafruit_display_text/__init__.py

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -40,41 +40,52 @@ def measure(string):
4040
width = measure(indent0)
4141
swidth = measure(" ")
4242
firstword = True
43-
for word in string.split():
44-
wwidth = measure(word)
45-
word_parts = []
46-
cur_part = ""
47-
if wwidth > max_width:
48-
if partial:
49-
lines.append("".join(partial))
50-
partial = []
51-
for char in word:
52-
if measure(cur_part) + measure(char) + measure("-") > max_width:
53-
word_parts.append(cur_part + "-")
54-
cur_part = char
55-
else:
56-
cur_part += char
57-
if cur_part:
58-
word_parts.append(cur_part)
59-
for line in word_parts[:-1]:
60-
lines.append(line)
61-
partial.append(word_parts[-1])
62-
width = measure(word_parts[-1])
63-
if firstword:
64-
firstword = False
65-
else:
66-
if firstword:
67-
partial.append(word)
68-
firstword = False
69-
width += wwidth
70-
elif width + swidth + wwidth < max_width:
71-
partial.append(" ")
72-
partial.append(word)
73-
width += wwidth + swidth
43+
for line_in_input in string.split("\n"):
44+
45+
print("line: {}".format(line_in_input))
46+
for index, word in enumerate(line_in_input.split(" ")):
47+
print("word: {}".format(word))
48+
wwidth = measure(word)
49+
word_parts = []
50+
cur_part = ""
51+
52+
if wwidth > max_width:
53+
if partial:
54+
lines.append("".join(partial))
55+
partial = []
56+
for char in word:
57+
if measure(cur_part) + measure(char) + measure("-") > max_width:
58+
word_parts.append(cur_part + "-")
59+
cur_part = char
60+
else:
61+
cur_part += char
62+
if cur_part:
63+
word_parts.append(cur_part)
64+
for line in word_parts[:-1]:
65+
lines.append(line)
66+
partial.append(word_parts[-1])
67+
width = measure(word_parts[-1])
68+
if firstword:
69+
firstword = False
7470
else:
75-
lines.append("".join(partial))
76-
partial = [indent1, word]
77-
width = measure(indent1) + wwidth
71+
if firstword:
72+
partial.append(word)
73+
firstword = False
74+
width += wwidth
75+
elif width + swidth + wwidth < max_width:
76+
if index > 0:
77+
partial.append(" ")
78+
partial.append(word)
79+
width += wwidth + swidth
80+
else:
81+
lines.append("".join(partial))
82+
partial = [indent1, word]
83+
width = measure(indent1) + wwidth
84+
85+
lines.append("".join(partial))
86+
partial = [indent1]
87+
width = measure(indent1)
88+
7889
if partial:
7990
lines.append("".join(partial))
8091
return lines

0 commit comments

Comments
 (0)