aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/funcs.c
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2025-03-13 02:14:01 +0100
committerluukvbaal <luukvbaal@gmail.com>2025-03-13 11:33:35 +0100
commit282f73f067cb935612782d55efa99036505d363f (patch)
tree06ae548de7fd0308b14dc122fb85a49ee6ee11d1 /src/nvim/eval/funcs.c
parent6e588519c8b355599bd6b3dfce822325cee80deb (diff)
downloadrneovim-282f73f067cb935612782d55efa99036505d363f.tar.gz
rneovim-282f73f067cb935612782d55efa99036505d363f.tar.bz2
rneovim-282f73f067cb935612782d55efa99036505d363f.zip
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 <przepompownia@users.noreply.github.com>
Diffstat (limited to 'src/nvim/eval/funcs.c')
-rw-r--r--src/nvim/eval/funcs.c9
1 files changed, 6 insertions, 3 deletions
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;