package ansiterm import ( "fmt" "strconv" ) type TestAnsiEventHandler struct { FunctionCalls []string } func CreateTestAnsiEventHandler() *TestAnsiEventHandler { evtHandler := TestAnsiEventHandler{} evtHandler.FunctionCalls = make([]string, 0) return &evtHandler } func (h *TestAnsiEventHandler) recordCall(call string, params []string) { s := fmt.Sprintf("%s(%v)", call, params) h.FunctionCalls = append(h.FunctionCalls, s) } func (h *TestAnsiEventHandler) Print(b byte) error { h.recordCall("Print", []string{string(b)}) return nil } func (h *TestAnsiEventHandler) Execute(b byte) error { h.recordCall("Execute", []string{string(b)}) return nil } func (h *TestAnsiEventHandler) CUU(param int) error { h.recordCall("CUU", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CUD(param int) error { h.recordCall("CUD", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CUF(param int) error { h.recordCall("CUF", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CUB(param int) error { h.recordCall("CUB", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CNL(param int) error { h.recordCall("CNL", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CPL(param int) error { h.recordCall("CPL", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CHA(param int) error { h.recordCall("CHA", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) VPA(param int) error { h.recordCall("VPA", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) CUP(x int, y int) error { xS, yS := strconv.Itoa(x), strconv.Itoa(y) h.recordCall("CUP", []string{xS, yS}) return nil } func (h *TestAnsiEventHandler) HVP(x int, y int) error { xS, yS := strconv.Itoa(x), strconv.Itoa(y) h.recordCall("HVP", []string{xS, yS}) return nil } func (h *TestAnsiEventHandler) DECTCEM(visible bool) error { h.recordCall("DECTCEM", []string{strconv.FormatBool(visible)}) return nil } func (h *TestAnsiEventHandler) DECOM(visible bool) error { h.recordCall("DECOM", []string{strconv.FormatBool(visible)}) return nil } func (h *TestAnsiEventHandler) DECCOLM(use132 bool) error { h.recordCall("DECOLM", []string{strconv.FormatBool(use132)}) return nil } func (h *TestAnsiEventHandler) ED(param int) error { h.recordCall("ED", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) EL(param int) error { h.recordCall("EL", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) IL(param int) error { h.recordCall("IL", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) DL(param int) error { h.recordCall("DL", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) ICH(param int) error { h.recordCall("ICH", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) DCH(param int) error { h.recordCall("DCH", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) SGR(params []int) error { strings := []string{} for _, v := range params { strings = append(strings, strconv.Itoa(v)) } h.recordCall("SGR", strings) return nil } func (h *TestAnsiEventHandler) SU(param int) error { h.recordCall("SU", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) SD(param int) error { h.recordCall("SD", []string{strconv.Itoa(param)}) return nil } func (h *TestAnsiEventHandler) DA(params []string) error { h.recordCall("DA", params) return nil } func (h *TestAnsiEventHandler) DECSTBM(top int, bottom int) error { topS, bottomS := strconv.Itoa(top), strconv.Itoa(bottom) h.recordCall("DECSTBM", []string{topS, bottomS}) return nil } func (h *TestAnsiEventHandler) RI() error { h.recordCall("RI", nil) return nil } func (h *TestAnsiEventHandler) IND() error { h.recordCall("IND", nil) return nil } func (h *TestAnsiEventHandler) Flush() error { return nil }