From 282f73f067cb935612782d55efa99036505d363f Mon Sep 17 00:00:00 2001 From: Luuk van Baal Date: Thu, 13 Mar 2025 02:14:01 +0100 Subject: fix(messages): no trailing newline for inputlist, tselect, z= with ext_messages Problem: Various list commands end in a newline to go to a new line on the message grid for the prompt message, which is unwanted with ext_messages. Solution: Don't emit a trailing newline with ext_messages for inputlist(), :tselect and z=. Co-authored-by: Tomasz N --- src/nvim/eval/funcs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/nvim/eval') diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index c8ad61f885..587b3a9c88 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -3563,16 +3563,19 @@ static void f_inputlist(typval_T *argvars, typval_T *rettv, EvalFuncData fptr) msg_scroll = true; msg_clr_eos(); - TV_LIST_ITER_CONST(argvars[0].vval.v_list, li, { + list_T *l = argvars[0].vval.v_list; + TV_LIST_ITER_CONST(l, li, { msg_puts(tv_get_string(TV_LIST_ITEM_TV(li))); - msg_putchar('\n'); + if (!ui_has(kUIMessages) || TV_LIST_ITEM_NEXT(l, li) != NULL) { + msg_putchar('\n'); + } }); // Ask for choice. bool mouse_used = false; int selected = prompt_for_input(NULL, 0, false, &mouse_used); if (mouse_used) { - selected = tv_list_len(argvars[0].vval.v_list) - (cmdline_row - mouse_row); + selected = tv_list_len(l) - (cmdline_row - mouse_row); } rettv->vval.v_number = selected; -- cgit