parent
f48a17de36
commit
188dc68192
@ -0,0 +1,55 @@
|
||||
// ------------------------------------------------------------------------
|
||||
// Project active2
|
||||
// Active Thing (activething.com) git.activething.com/go
|
||||
//
|
||||
// File name code_color.go
|
||||
// Created by DEV
|
||||
// Modified 06/04/2024
|
||||
//
|
||||
// Copyright 2024 activething.com
|
||||
// ------------------------------------------------------------------------
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
package ansi
|
||||
|
||||
|
||||
const (
|
||||
|
||||
ColorNone AnsiColor = iota
|
||||
ColorBlack
|
||||
ColorRed
|
||||
ColorGreen
|
||||
ColorYellow
|
||||
ColorBlue
|
||||
ColorMagenta
|
||||
ColorCyan
|
||||
ColorWhite
|
||||
ColorHBlack
|
||||
ColorHRed
|
||||
ColorHGreen
|
||||
ColorHYellow
|
||||
ColorHBlue
|
||||
ColorHMagenta
|
||||
ColorHCyan
|
||||
ColorHWhite
|
||||
ColorDefault
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
AnsiColor uint8
|
||||
|
||||
)
|
||||
|
||||
|
||||
@ -0,0 +1,99 @@
|
||||
// ------------------------------------------------------------------------
|
||||
// Project active2
|
||||
// Active Thing (activething.com) git.activething.com/go
|
||||
//
|
||||
// File name non_escape_reader.go
|
||||
// Created by DEV
|
||||
// Modified 06/04/2024
|
||||
//
|
||||
// Copyright 2024 activething.com
|
||||
// ------------------------------------------------------------------------
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
package ansi
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"io"
|
||||
)
|
||||
|
||||
type (
|
||||
|
||||
NonEscapeReader struct {
|
||||
pos int
|
||||
unescaped []byte
|
||||
reader io.Reader
|
||||
}
|
||||
)
|
||||
|
||||
func NewNonEscapeReader (reader io.Reader) *NonEscapeReader {
|
||||
r := bufio.NewReader(reader)
|
||||
return &NonEscapeReader{
|
||||
reader : r,
|
||||
unescaped : make([]byte,0,r.Size()),
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
func (r *NonEscapeReader) Read (p []byte) (n int, e error) {
|
||||
n := 0
|
||||
for {
|
||||
// Read a byte from the underlying reader
|
||||
b, err := f.Reader.ReadByte()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
return n, err
|
||||
}
|
||||
|
||||
// If not an escape character, write it to the output buffer
|
||||
if !escapeMap[b] {
|
||||
p[n] = b
|
||||
n++
|
||||
continue
|
||||
}
|
||||
|
||||
// If escape character, skip the next byte
|
||||
next, err := SkipEscape(f.Reader, escapeMap)
|
||||
if err != nil {
|
||||
return n, err
|
||||
}
|
||||
|
||||
// Update reader position to reflect skipped bytes
|
||||
f.pos += next - f.pos
|
||||
}
|
||||
|
||||
return n, nil
|
||||
|
||||
}
|
||||
|
||||
|
||||
func skipEscape(r *bufio.Reader, escapeMap [255]byte) (int, error) {
|
||||
for {
|
||||
b, err := r.ReadByte()
|
||||
if err == io.EOF {
|
||||
return 0, errors.New("Incomplete escape sequence")
|
||||
}
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if !escapeMap[b] {
|
||||
return r.Pos(), nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
Loading…
Reference in new issue