Codebase list golang-github-vbauerster-mpb / a2a79e9
fix windows lines Vladimir Bauer 3 years ago
2 changed file(s) with 8 addition(s) and 16 deletion(s). Raw diff Collapse all Expand all
3030 type Writer struct {
3131 *bytes.Buffer
3232 out io.Writer
33 lines int // used by writer_windows only
3334 fd int
3435 terminal bool
3536 termSize func(int) (int, int, error)
1414 procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
1515 )
1616
17 var linesCleaner = makeLinesCleaner()
18
19 func makeLinesCleaner() func(*Writer, int) error {
20 var lastLines int
21 return func(w *Writer, n int) (err error) {
22 if lastLines > 0 {
23 err = w.clearLines(lastLines)
24 }
25 lastLines = n
26 return err
27 }
28 }
29
3017 // Flush flushes the underlying buffer.
3118 func (w *Writer) Flush(lines int) error {
32 err := linesCleaner(w, lines)
33 if err == nil {
34 _, err = w.WriteTo(w.out)
19 if w.lines > 0 {
20 err := w.clearLines(w.lines)
21 if err != nil {
22 return err
23 }
3524 }
25 w.lines = lines
26 _, err := w.WriteTo(w.out)
3627 return err
3728 }
3829