|
|
@@ -75,6 +75,7 @@ type Writer struct {
|
|
|
oldattr word
|
|
|
}
|
|
|
|
|
|
+// NewColorable return new instance of Writer which handle escape sequence from File.
|
|
|
func NewColorable(file *os.File) io.Writer {
|
|
|
if file == nil {
|
|
|
panic("nil passed instead of *os.File to NewColorable()")
|
|
|
@@ -90,10 +91,12 @@ func NewColorable(file *os.File) io.Writer {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// NewColorableStdout return new instance of Writer which handle escape sequence for stdout.
|
|
|
func NewColorableStdout() io.Writer {
|
|
|
return NewColorable(os.Stdout)
|
|
|
}
|
|
|
|
|
|
+// NewColorableStderr return new instance of Writer which handle escape sequence for stderr.
|
|
|
func NewColorableStderr() io.Writer {
|
|
|
return NewColorable(os.Stderr)
|
|
|
}
|
|
|
@@ -357,6 +360,7 @@ var color256 = map[int]int{
|
|
|
255: 0xeeeeee,
|
|
|
}
|
|
|
|
|
|
+// Write write data on console
|
|
|
func (w *Writer) Write(data []byte) (n int, err error) {
|
|
|
var csbi consoleScreenBufferInfo
|
|
|
procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
|
|
|
@@ -466,7 +470,7 @@ loop:
|
|
|
continue
|
|
|
}
|
|
|
procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
|
|
|
- csbi.cursorPosition.x = short(n-1)
|
|
|
+ csbi.cursorPosition.x = short(n - 1)
|
|
|
procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
|
|
|
case 'H':
|
|
|
token := strings.Split(buf.String(), ";")
|
|
|
@@ -481,8 +485,8 @@ loop:
|
|
|
if err != nil {
|
|
|
continue
|
|
|
}
|
|
|
- csbi.cursorPosition.x = short(n2-1)
|
|
|
- csbi.cursorPosition.y = short(n1-1)
|
|
|
+ csbi.cursorPosition.x = short(n2 - 1)
|
|
|
+ csbi.cursorPosition.y = short(n1 - 1)
|
|
|
procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
|
|
|
case 'J':
|
|
|
n, err := strconv.Atoi(buf.String())
|