@@ -410,7 +410,7 @@ func (enc *TableEncoder) header() {
410
410
411
411
if enc .title != nil && enc .title .Width != 0 {
412
412
maxWidth := ((enc .tableWidth () - enc .title .Width ) / 2 ) + enc .title .Width
413
- enc .writeAligned (enc .title .Buf , rs . filler , AlignRight , maxWidth - enc .title .Width )
413
+ enc .writeAligned (enc .title .Buf , & rs , AlignRight , maxWidth - enc .title .Width )
414
414
enc .w .Write (enc .newline )
415
415
}
416
416
// draw top border
@@ -472,7 +472,7 @@ func (enc TableEncoder) rowStyle(r [4]rune) rowStyle {
472
472
wrapper : []byte (string (enc .lineStyle .Wrap [1 ])),
473
473
middle : []byte (middle ),
474
474
right : []byte (right + string (enc .newline )),
475
- filler : []byte (filler ),
475
+ filler : bytes . Repeat ( []byte (filler ), 8 ),
476
476
hasWrapping : runewidth .RuneWidth (enc .lineStyle .Row [1 ]) > 0 ,
477
477
}
478
478
}
@@ -497,11 +497,11 @@ func (enc *TableEncoder) divider(rs rowStyle) {
497
497
498
498
for i , width := range enc .maxWidths {
499
499
// column
500
- repeat (enc .w , rs .filler , width )
500
+ rs . filler = repeat (enc .w , rs .filler , width )
501
501
502
502
// line feed indicator
503
503
if rs .hasWrapping && enc .border >= 1 {
504
- enc .w .Write (rs .filler )
504
+ enc .w .Write (rs .filler [: 1 ] )
505
505
}
506
506
507
507
// middle separator
@@ -614,11 +614,10 @@ func (enc *TableEncoder) row(vals []*Value, rs rowStyle) {
614
614
if enc .border <= 1 && i == len (vals )- 1 && (! rs .hasWrapping || l >= len (v .Newlines )) {
615
615
padding = 0
616
616
}
617
- enc .writeAligned (v .Buf [start :end ], rs . filler , v .Align , padding )
617
+ enc .writeAligned (v .Buf [start :end ], & rs , v .Align , padding )
618
618
} else {
619
619
if enc .border > 1 || i != len (vals )- 1 {
620
- enc .w .Write (bytes .Repeat (rs .filler , enc .maxWidths [i ]))
621
- repeat (enc .w , rs .filler , enc .maxWidths [i ])
620
+ rs .filler = repeat (enc .w , rs .filler , enc .maxWidths [i ])
622
621
}
623
622
}
624
623
@@ -627,7 +626,7 @@ func (enc *TableEncoder) row(vals []*Value, rs rowStyle) {
627
626
if l < len (v .Newlines ) {
628
627
enc .w .Write (rs .wrapper )
629
628
} else {
630
- enc .w .Write (rs .filler )
629
+ enc .w .Write (rs .filler [: 1 ] )
631
630
}
632
631
}
633
632
@@ -651,7 +650,7 @@ func (enc *TableEncoder) row(vals []*Value, rs rowStyle) {
651
650
}
652
651
}
653
652
654
- func (enc * TableEncoder ) writeAligned (b , filler []byte , a Align , padding int ) {
653
+ func (enc * TableEncoder ) writeAligned (b []byte , rs * rowStyle , a Align , padding int ) {
655
654
// calc padding
656
655
paddingLeft := 0
657
656
paddingRight := 0
@@ -669,15 +668,15 @@ func (enc *TableEncoder) writeAligned(b, filler []byte, a Align, padding int) {
669
668
670
669
// add padding left
671
670
if paddingLeft > 0 {
672
- repeat (enc .w , filler , paddingLeft )
671
+ rs . filler = repeat (enc .w , rs . filler , paddingLeft )
673
672
}
674
673
675
674
// write
676
675
enc .w .Write (b )
677
676
678
677
// add padding right
679
678
if paddingRight > 0 {
680
- repeat (enc .w , filler , paddingRight )
679
+ rs . filler = repeat (enc .w , rs . filler , paddingRight )
681
680
}
682
681
}
683
682
@@ -950,10 +949,10 @@ func (enc *ExpandedEncoder) record(i int, vals []*Value, rs rowStyle) {
950
949
enc .w .WriteString (header )
951
950
padding := enc .maxWidths [0 ] + enc .maxWidths [1 ] + runewidth .StringWidth (string (headerRS .middle ))* 2 - len (header ) - 1
952
951
if padding > 0 {
953
- repeat (enc .w , headerRS .filler , padding )
952
+ headerRS . filler = repeat (enc .w , headerRS .filler , padding )
954
953
}
955
954
// write newline wrap value
956
- enc .w .Write (headerRS .filler )
955
+ enc .w .Write (headerRS .filler [: 1 ] )
957
956
enc .w .Write (headerRS .right )
958
957
}
959
958
0 commit comments