diff --git a/bar.go b/bar.go index 77990c3..ed6c73e 100644 --- a/bar.go +++ b/bar.go @@ -393,9 +393,10 @@ nlr := strings.NewReader("\n") tw := stat.AvailableWidth for _, d := range s.pDecorators { - s.bufP.WriteString(d.Decor(stat)) - } - stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(s.bufP.String())) + str := d.Decor(stat) + stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(str)) + s.bufP.WriteString(str) + } if stat.AvailableWidth < 1 { trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufP.String()), tw, "…")) s.bufP.Reset() @@ -410,9 +411,10 @@ tw = stat.AvailableWidth for _, d := range s.aDecorators { - s.bufA.WriteString(d.Decor(stat)) - } - stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(s.bufA.String())) + str := d.Decor(stat) + stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(str)) + s.bufA.WriteString(str) + } if stat.AvailableWidth < 1 { trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufA.String()), tw, "…")) s.bufA.Reset()