From ca1b2454bd9a5c3526dbe9106705c229b0bd2493 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 7 Aug 2021 10:45:50 +0530 Subject: [PATCH] Fix position output in matcher --- kittens/choose/output.c | 8 ++++---- kitty_tests/choose.py | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/kittens/choose/output.c b/kittens/choose/output.c index a669baae7..f1e822318 100644 --- a/kittens/choose/output.c +++ b/kittens/choose/output.c @@ -66,10 +66,10 @@ static void output_positions(GlobalData *global, len_t *positions, len_t num) { wchar_t buf[128]; for (len_t i = 0; i < num; i++) { - int num = swprintf(buf, sizeof(buf)/sizeof(buf[0]), L"%u", positions[i]); - if (num > 0 && ensure_space(global, num + 1)) { - for (int i = 0; i < num; i++) global->output[global->output_pos++] = buf[i]; - global->output[global->output_pos++] = (i == num - 1) ? ',' : ':'; + int pnum = swprintf(buf, arraysz(buf), L"%u", positions[i]); + if (pnum > 0 && ensure_space(global, pnum + 1)) { + for (int k = 0; k < pnum; k++) global->output[global->output_pos++] = buf[k]; + global->output[global->output_pos++] = (i == num - 1) ? ':' : ','; } } } diff --git a/kitty_tests/choose.py b/kitty_tests/choose.py index 623a8ca08..6aeda01db 100644 --- a/kitty_tests/choose.py +++ b/kitty_tests/choose.py @@ -59,6 +59,7 @@ class TestMatcher(BaseTest): def test_positions(self): ' Output of positions ' self.basic_test('abc\nac', 'ac', '0,1:ac\n0,2:abc', positions=True) + self.basic_test('abc\nv', 'a', '0:abc', positions=True) def test_delimiter(self): ' Test using a custom line delimiter '