@@ -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