Codebase list golang-github-vbauerster-mpb / b0a1878
decorators take width precedence over bar filler Vladimir Bauer 3 years ago
1 changed file(s) with 21 addition(s) and 20 deletion(s). Raw diff Collapse all Expand all
484484 return nil, err
485485 }
486486
487 if !s.trimSpace && stat.AvailableWidth >= 2 {
488 err = bufB.WriteByte(' ')
489 if err != nil {
490 return nil, err
491 }
492 defer func() {
493 if err == nil {
494 err = bufB.WriteByte(' ')
495 }
496 }()
497 stat.AvailableWidth -= 2
498 }
499
500487 resA, err := decorFiller(bufA, s.aDecorators)
501488 if err != nil {
502489 return nil, err
505492 if resP.truncate {
506493 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(bufP.String()), resP.width, "…"))
507494 bufP.Reset()
508 bufB.Reset()
509495 bufA.Reset()
510496 return trunc, nil
511497 }
513499 if resA.truncate {
514500 trunc := strings.NewReader(runewidth.Truncate(stripansi.Strip(bufA.String()), resA.width, "…"))
515501 bufA.Reset()
516 return io.MultiReader(bufP, bufB, trunc), nil
517 }
518
519 err = s.filler.Fill(bufB, stat)
520 if err != nil {
521 return nil, err
502 return io.MultiReader(bufP, trunc), nil
503 }
504
505 if !s.trimSpace && stat.AvailableWidth >= 2 {
506 stat.AvailableWidth -= 2
507 space := func() error {
508 return bufB.WriteByte(' ')
509 }
510 filler := func() error {
511 return s.filler.Fill(bufB, stat)
512 }
513 for _, fn := range []func() error{space, filler, space} {
514 if err := fn(); err != nil {
515 return nil, err
516 }
517 }
518 } else {
519 err = s.filler.Fill(bufB, stat)
520 if err != nil {
521 return nil, err
522 }
522523 }
523524
524525 return io.MultiReader(bufP, bufB, bufA), nil