diff --git a/src/ansi.go b/src/ansi.go index e5ac81c..02be18c 100644 --- a/src/ansi.go +++ b/src/ansi.go @@ -35,7 +35,7 @@ func (s *ansiState) equals(t *ansiState) bool { var ansiRegex *regexp.Regexp func init() { - ansiRegex = regexp.MustCompile("\x1b.[0-9;]*.") + ansiRegex = regexp.MustCompile("\x1b\\[[0-9;]*.|[\x0e\x0f]") } func extractColor(str string, state *ansiState, proc func(string, *ansiState) bool) (string, *[]ansiOffset, *ansiState) { @@ -100,7 +100,7 @@ func interpretCode(ansiCode string, prevState *ansiState) *ansiState { } else { state = &ansiState{prevState.fg, prevState.bg, prevState.attr} } - if ansiCode[1] != '[' || ansiCode[len(ansiCode)-1] != 'm' { + if ansiCode[0] != '\x1b' || ansiCode[len(ansiCode)-1] != 'm' { return state } diff --git a/src/curses/curses.go b/src/curses/curses.go index e0e728c..638a862 100644 --- a/src/curses/curses.go +++ b/src/curses/curses.go @@ -682,13 +682,7 @@ func (w *Window) Erase() { } func (w *Window) Fill(str string) bool { - return C.waddstr(w.win, C.CString(strings.Map(func(r rune) rune { - // Remove ^N and ^O (set and unset altcharset) - if r == 14 || r == 15 { - return -1 - } - return r - }, str))) == C.OK + return C.waddstr(w.win, C.CString(str)) == C.OK } func (w *Window) CFill(str string, fg int, bg int, a Attr) bool {