vim-patch:8.2.2875: cancelling inputlist() after a digit does not return zero

Problem:    Cancelling inputlist() after a digit does not return zero.
Solution:   Always return zero when cancelling. (closes vim/vim#8231)
5cf94577cf
This commit is contained in:
Jan Edmund Lazo
2021-05-20 21:21:29 -04:00
parent 39fdb86832
commit 486050ebc9
2 changed files with 8 additions and 1 deletions

View File

@@ -753,7 +753,10 @@ get_number (
skip_redraw = TRUE; /* skip redraw once */
do_redraw = FALSE;
break;
} else if (c == CAR || c == NL || c == Ctrl_C || c == ESC || c == 'q') {
} else if (c == Ctrl_C || c == ESC || c == 'q') {
n = 0;
break;
} else if (c == CAR || c == NL) {
break;
}
}

View File

@@ -1079,6 +1079,10 @@ func Test_inputlist()
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>q", 'tx')
call assert_equal(0, c)
" Cancel after inputting a number
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>5q", 'tx')
call assert_equal(0, c)
call assert_fails('call inputlist("")', 'E686:')
endfunc