@@ -317,10 +317,11 @@ def to_string(self, force_unicode=None):
317
317
318
318
def _join_multiline (self , * strcols ):
319
319
lwidth = self .line_width
320
+ adjoin_width = 1
320
321
strcols = list (strcols )
321
322
if self .index :
322
323
idx = strcols .pop (0 )
323
- lwidth -= np .array ([len (x ) for x in idx ]).max ()
324
+ lwidth -= np .array ([len (x ) for x in idx ]).max () + adjoin_width
324
325
325
326
col_widths = [np .array ([len (x ) for x in col ]).max ()
326
327
if len (col ) > 0 else 0
@@ -339,7 +340,7 @@ def _join_multiline(self, *strcols):
339
340
else :
340
341
row .append ([' ' ] * len (self .frame ))
341
342
342
- str_lst .append (adjoin (1 , * row ))
343
+ str_lst .append (adjoin (adjoin_width , * row ))
343
344
st = ed
344
345
return '\n \n ' .join (str_lst )
345
346
@@ -1765,14 +1766,21 @@ def _put_lines(buf, lines):
1765
1766
buf .write ('\n ' .join (lines ))
1766
1767
1767
1768
1768
- def _binify (cols , width ):
1769
+ def _binify (cols , line_width ):
1770
+ adjoin_width = 1
1769
1771
bins = []
1770
1772
curr_width = 0
1773
+ i_last_column = len (cols ) - 1
1771
1774
for i , w in enumerate (cols ):
1772
- curr_width += w
1773
- if curr_width + 2 > width and i > 0 :
1775
+ w_adjoined = w + adjoin_width
1776
+ curr_width += w_adjoined
1777
+ if i_last_column == i :
1778
+ wrap = curr_width + 1 > line_width and i > 0
1779
+ else :
1780
+ wrap = curr_width + 2 > line_width and i > 0
1781
+ if wrap :
1774
1782
bins .append (i )
1775
- curr_width = w
1783
+ curr_width = w_adjoined
1776
1784
1777
1785
bins .append (len (cols ))
1778
1786
return bins
0 commit comments