Fix #155 - Empty ANSI color code to reset color state
This commit is contained in:
parent
eae53576bd
commit
9d138173be
@ -99,6 +99,9 @@ func interpretCode(ansiCode string, prevState *ansiState) *ansiState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ansiCode = ansiCode[2 : len(ansiCode)-1]
|
ansiCode = ansiCode[2 : len(ansiCode)-1]
|
||||||
|
if len(ansiCode) == 0 {
|
||||||
|
init()
|
||||||
|
}
|
||||||
for _, code := range strings.Split(ansiCode, ";") {
|
for _, code := range strings.Split(ansiCode, ";") {
|
||||||
if num, err := strconv.Atoi(code); err == nil {
|
if num, err := strconv.Atoi(code); err == nil {
|
||||||
switch state256 {
|
switch state256 {
|
||||||
|
@ -45,6 +45,14 @@ func TestExtractColor(t *testing.T) {
|
|||||||
assert(offsets[0], 0, 11, -1, -1, true)
|
assert(offsets[0], 0, 11, -1, -1, true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
src = "\x1b[1mhello \x1b[mworld"
|
||||||
|
check(func(offsets []ansiOffset) {
|
||||||
|
if len(offsets) != 1 {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
assert(offsets[0], 0, 6, -1, -1, true)
|
||||||
|
})
|
||||||
|
|
||||||
src = "hello \x1b[34;45;1mworld"
|
src = "hello \x1b[34;45;1mworld"
|
||||||
check(func(offsets []ansiOffset) {
|
check(func(offsets []ansiOffset) {
|
||||||
if len(offsets) != 1 {
|
if len(offsets) != 1 {
|
||||||
|
Loading…
Reference in New Issue
Block a user