16 auto *buf =
static_cast<char *
>(data);
19 const char *end = buf + len;
27 size_t remaining = end - in;
30 if (remaining >= 4 && memcmp(in,
"\x1b[6n", 4) == 0) {
37 if (remaining >= 3 && memcmp(in,
"\x1b[m", 3) == 0) {
43 if (remaining >= 6 && memcmp(in,
"\x1b[?25h", 6) == 0) {
50 if (remaining >= 8 && memcmp(in,
"\x1b[?9001", 7) == 0 &&
51 (in[7] ==
'h' || in[7] ==
'l')) {
57 if (remaining >= 8 && memcmp(in,
"\x1b[?1004", 7) == 0 &&
58 (in[7] ==
'h' || in[7] ==
'l')) {
64 if (remaining >= 4 && in[1] ==
']' && in[2] ==
'0' && in[3] ==
';') {
66 static_cast<const char *
>(memchr(in + 4,
'\x07', end - in - 4));
77 len =
static_cast<size_t>(out - buf);