go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/util/linefeed/linefeed.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package linefeed 5 6 import "io" 7 8 var ( 9 // the '\r' rune 10 RByte byte = 13 11 // the '\n' rune 12 NByte byte = 10 13 ) 14 15 type lineFeedReader struct { 16 r io.Reader 17 } 18 19 // NewLineFeedReader creates a new io.Reader that replaces /r with /n 20 // see https://github.com/golang/go/issues/7802 21 func NewLineFeedReader(r io.Reader) io.Reader { 22 return &lineFeedReader{r: r} 23 } 24 25 func (r lineFeedReader) Read(p []byte) (n int, err error) { 26 n, err = r.r.Read(p) 27 for i, b := range p { 28 if b == RByte { 29 p[i] = NByte 30 } 31 } 32 return 33 }