From b09c6d56832eb1718c07d74abf3bc6ae3fe4e030 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:36:04 +0200 Subject: Adding upstream version 1.1.0. Signed-off-by: Daniel Baumann --- .../mattn/go-colorable@v0.1.13/noncolorable.go | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 dependencies/pkg/mod/github.com/mattn/go-colorable@v0.1.13/noncolorable.go (limited to 'dependencies/pkg/mod/github.com/mattn/go-colorable@v0.1.13/noncolorable.go') diff --git a/dependencies/pkg/mod/github.com/mattn/go-colorable@v0.1.13/noncolorable.go b/dependencies/pkg/mod/github.com/mattn/go-colorable@v0.1.13/noncolorable.go new file mode 100644 index 0000000..05d6f74 --- /dev/null +++ b/dependencies/pkg/mod/github.com/mattn/go-colorable@v0.1.13/noncolorable.go @@ -0,0 +1,57 @@ +package colorable + +import ( + "bytes" + "io" +) + +// NonColorable holds writer but removes escape sequence. +type NonColorable struct { + out io.Writer +} + +// NewNonColorable returns new instance of Writer which removes escape sequence from Writer. +func NewNonColorable(w io.Writer) io.Writer { + return &NonColorable{out: w} +} + +// Write writes data on console +func (w *NonColorable) Write(data []byte) (n int, err error) { + er := bytes.NewReader(data) + var plaintext bytes.Buffer +loop: + for { + c1, err := er.ReadByte() + if err != nil { + plaintext.WriteTo(w.out) + break loop + } + if c1 != 0x1b { + plaintext.WriteByte(c1) + continue + } + _, err = plaintext.WriteTo(w.out) + if err != nil { + break loop + } + c2, err := er.ReadByte() + if err != nil { + break loop + } + if c2 != 0x5b { + continue + } + + for { + c, err := er.ReadByte() + if err != nil { + break loop + } + if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { + break + } + } + } + + return len(data), nil +} -- cgit v1.2.3