aboutsummaryrefslogtreecommitdiffstats
path: root/libterminput.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2021-04-10 01:10:33 +0200
committerMattias Andrée <maandree@kth.se>2021-04-10 01:10:33 +0200
commit5c03486f86e32a0ca735bfb06cebd32f4ecd19e2 (patch)
tree2e1723e55af65a1e3e0826efb43fdf480f554eaa /libterminput.c
parentAdd support for cursor position and device status reports (diff)
downloadlibterminput-5c03486f86e32a0ca735bfb06cebd32f4ecd19e2.tar.gz
libterminput-5c03486f86e32a0ca735bfb06cebd32f4ecd19e2.tar.bz2
libterminput-5c03486f86e32a0ca735bfb06cebd32f4ecd19e2.tar.xz
Fix cursor pos report and update interactive test
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'libterminput.c')
-rw-r--r--libterminput.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/libterminput.c b/libterminput.c
index 5d6f401..ed2415f 100644
--- a/libterminput.c
+++ b/libterminput.c
@@ -398,19 +398,25 @@ parse_sequence(union libterminput_input *input, struct libterminput_state *ctx)
}
break;
case 'P':
+ input->keypress.key = LIBTERMINPUT_F1;
+ if (ctx->flags & LIBTERMINPUT_PAUSE_ON_CSI_P)
+ input->keypress.key = LIBTERMINPUT_PAUSE;
+ break;
+ case 'Q':
+ input->keypress.key = LIBTERMINPUT_F2;
+ break;
+ case 'R':
if ((ctx->flags & LIBTERMINPUT_AWAITING_CURSOR_POSITION) && nnums == 2) {
input->position.type = LIBTERMINPUT_CURSOR_POSITION;
input->position.y = (size_t)nums[0] + (size_t)!nums[0];
input->position.x = (size_t)nums[1] + (size_t)!nums[1];
} else {
- input->keypress.key = LIBTERMINPUT_F1;
- if (ctx->flags & LIBTERMINPUT_PAUSE_ON_CSI_P)
- input->keypress.key = LIBTERMINPUT_PAUSE;
+ input->keypress.key = LIBTERMINPUT_F3;
}
break;
- case 'Q': input->keypress.key = LIBTERMINPUT_F2; break;
- case 'R': input->keypress.key = LIBTERMINPUT_F3; break;
- case 'S': input->keypress.key = LIBTERMINPUT_F4; break;
+ case 'S':
+ input->keypress.key = LIBTERMINPUT_F4;
+ break;
case 'T':
/* Parsing output for legacy mouse highlight tracking output. (\e[?1001h) */
ctx->mouse_tracking = 0;