protected void processCsiParamOrCommand(byte c) {
		switch (c) {
			default:
				escBuf.put(c);
				break;
			case 'A':
				execCursorUp();
				mode = Mode.CHARS;
				break;
			case 'B':
				execCursorDown();
				mode = Mode.CHARS;
				break;
			case 'C':
				execCursorForward();
				mode = Mode.CHARS;
				break;
			case 'D':
				execCursorBackward();
				mode = Mode.CHARS;
				break;
			case 'H':
				execCursorPosition();
				mode = Mode.CHARS;
				break;
			case 'J':
				execEraseInDisplay();
				mode = Mode.CHARS;
				break;
			case 'K':
				execEraseInLine();
				mode = Mode.CHARS;
				break;
			case 'X':
				execEraseCharacter();
				mode = Mode.CHARS;
				break;
			case 'm':
				execSetGraphicsRendition();
				mode = Mode.CHARS;
				break;
			case 'h':
				execPrivateSequence(true);
				mode = Mode.CHARS;
				break;
			case 'l':
				execPrivateSequence(false);
				mode = Mode.CHARS;
				break;
		}
	}
There's not really a good way to know if any trailing space was intentional. For GDB/MI, that
doesn't really matter.
Ghidra/Framework/Pty/src/main/java/ghidra/pty/windows/AnsiBufferedInputStream.java