From bf121f7c6011a219f316745e2a4182830fc0a85a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 19 Aug 2009 17:00:31 +0000 Subject: [PATCH] Handle the device attributes (DA) escape sequence. --- input.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/input.c b/input.c index 7b43f261..15104faf 100644 --- a/input.c +++ b/input.c @@ -68,6 +68,7 @@ void input_handle_sequence_cuf(struct input_ctx *); void input_handle_sequence_cub(struct input_ctx *); void input_handle_sequence_dch(struct input_ctx *); void input_handle_sequence_cbt(struct input_ctx *); +void input_handle_sequence_da(struct input_ctx *); void input_handle_sequence_dl(struct input_ctx *); void input_handle_sequence_ich(struct input_ctx *); void input_handle_sequence_il(struct input_ctx *); @@ -104,6 +105,7 @@ const struct input_sequence_entry input_sequence_table[] = { { 'M', input_handle_sequence_dl }, { 'P', input_handle_sequence_dch }, { 'Z', input_handle_sequence_cbt }, + { 'c', input_handle_sequence_da }, { 'd', input_handle_sequence_vpa }, { 'f', input_handle_sequence_cup }, { 'g', input_handle_sequence_tbc }, @@ -951,6 +953,25 @@ input_handle_sequence_cbt(struct input_ctx *ictx) } } +void +input_handle_sequence_da(struct input_ctx *ictx) +{ + struct screen *s = ictx->ctx.s; + uint16_t n; + + if (ictx->private != '\0') + return; + + if (ARRAY_LENGTH(&ictx->args) > 1) + return; + if (input_get_argument(ictx, 0, &n, 0) != 0) + return; + if (n != 0) + return; + + buffer_write(ictx->wp->out, "\033[?1;2c", (sizeof "\033[?1;2c") - 1); +} + void input_handle_sequence_dl(struct input_ctx *ictx) {