Codebase list golang-github-vbauerster-mpb / 1b90ea1
draw truncate fix Vladimir Bauer 6 years ago
1 changed file(s) with 4 addition(s) and 5 deletion(s). Raw diff Collapse all Expand all
384384 }
385385
386386 func (s *bState) draw(stat decor.Statistics) io.Reader {
387 btrim, tw := 0, stat.AvailableWidth
388387 if !s.trimSpace {
389 btrim = 2
390 stat.AvailableWidth -= btrim
388 stat.AvailableWidth -= 2
391389 s.bufB.WriteByte(' ')
392390 defer s.bufB.WriteByte(' ')
393391 }
394392
395393 nlr := strings.NewReader("\n")
394 tw := stat.AvailableWidth
396395 for _, d := range s.pDecorators {
397396 str := d.Decor(stat)
398397 stat.AvailableWidth -= runewidth.StringWidth(stripansi.Strip(str))
399398 s.bufP.WriteString(str)
400399 }
401400 if stat.AvailableWidth <= 0 {
402 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufP.String()), tw-btrim, "…"))
401 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufP.String()), tw, "…"))
403402 return io.MultiReader(trunc, s.bufB, nlr)
404403 }
405404
410409 s.bufA.WriteString(str)
411410 }
412411 if stat.AvailableWidth <= 0 {
413 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufA.String()), tw-btrim, "…"))
412 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(s.bufA.String()), tw, "…"))
414413 return io.MultiReader(s.bufP, s.bufB, trunc, nlr)
415414 }
416415