7 func (ap *AnsiParser) collectParam() error {
8 currChar := ap.context.currentChar
9 logger.Infof("collectParam %#x", currChar)
10 ap.context.paramBuffer = append(ap.context.paramBuffer, currChar)
14 func (ap *AnsiParser) collectInter() error {
15 currChar := ap.context.currentChar
16 logger.Infof("collectInter %#x", currChar)
17 ap.context.paramBuffer = append(ap.context.interBuffer, currChar)
21 func (ap *AnsiParser) escDispatch() error {
22 cmd, _ := parseCmd(*ap.context)
23 intermeds := ap.context.interBuffer
24 logger.Infof("escDispatch currentChar: %#x", ap.context.currentChar)
25 logger.Infof("escDispatch: %v(%v)", cmd, intermeds)
29 return ap.eventHandler.IND()
30 case "E": // NEL, equivalent to CRLF
31 err := ap.eventHandler.Execute(ANSI_CARRIAGE_RETURN)
33 err = ap.eventHandler.Execute(ANSI_LINE_FEED)
37 return ap.eventHandler.RI()
43 func (ap *AnsiParser) csiDispatch() error {
44 cmd, _ := parseCmd(*ap.context)
45 params, _ := parseParams(ap.context.paramBuffer)
47 logger.Infof("csiDispatch: %v(%v)", cmd, params)
51 return ap.eventHandler.ICH(getInt(params, 1))
53 return ap.eventHandler.CUU(getInt(params, 1))
55 return ap.eventHandler.CUD(getInt(params, 1))
57 return ap.eventHandler.CUF(getInt(params, 1))
59 return ap.eventHandler.CUB(getInt(params, 1))
61 return ap.eventHandler.CNL(getInt(params, 1))
63 return ap.eventHandler.CPL(getInt(params, 1))
65 return ap.eventHandler.CHA(getInt(params, 1))
67 ints := getInts(params, 2, 1)
68 x, y := ints[0], ints[1]
69 return ap.eventHandler.CUP(x, y)
71 param := getEraseParam(params)
72 return ap.eventHandler.ED(param)
74 param := getEraseParam(params)
75 return ap.eventHandler.EL(param)
77 return ap.eventHandler.IL(getInt(params, 1))
79 return ap.eventHandler.DL(getInt(params, 1))
81 return ap.eventHandler.DCH(getInt(params, 1))
83 return ap.eventHandler.SU(getInt(params, 1))
85 return ap.eventHandler.SD(getInt(params, 1))
87 return ap.eventHandler.DA(params)
89 return ap.eventHandler.VPA(getInt(params, 1))
91 ints := getInts(params, 2, 1)
92 x, y := ints[0], ints[1]
93 return ap.eventHandler.HVP(x, y)
95 return ap.hDispatch(params)
97 return ap.lDispatch(params)
99 return ap.eventHandler.SGR(getInts(params, 1, 0))
101 ints := getInts(params, 2, 1)
102 top, bottom := ints[0], ints[1]
103 return ap.eventHandler.DECSTBM(top, bottom)
105 logger.Errorf(fmt.Sprintf("Unsupported CSI command: '%s', with full context: %v", cmd, ap.context))
111 func (ap *AnsiParser) print() error {
112 return ap.eventHandler.Print(ap.context.currentChar)
115 func (ap *AnsiParser) clear() error {
116 ap.context = &ansiContext{}
120 func (ap *AnsiParser) execute() error {
121 return ap.eventHandler.Execute(ap.context.currentChar)