Mercurial > vim
changeset 36240:820eb3205d2a v9.1.0758
patch 9.1.0758: it's possible to set an invalid key to 'wildcharm'
Commit: https://github.com/vim/vim/commit/40c6babc1789aceb241b23bab76eea16da37e33d
Author: Milly <milly.ca@gmail.com>
Date: Fri Oct 4 20:41:14 2024 +0200
patch 9.1.0758: it's possible to set an invalid key to 'wildcharm'
Problem: it's possible to set an invalid key to 'wildcharm'
Solution: error out, if the 'wildcharm' value is an invalid key
(Milly)
closes: #15787
Signed-off-by: Milly <milly.ca@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 04 Oct 2024 20:45:11 +0200 |
parents | 8eb534b09baa |
children | 646ba1ed450a |
files | src/option.c src/testdir/gen_opt_test.vim src/version.c |
diffstat | 3 files changed, 14 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/option.c +++ b/src/option.c @@ -2251,10 +2251,11 @@ do_set_option_numeric( * Different ways to set a number option: * & set to default value * < set to global value - * <xx> accept special key codes for 'wildchar' - * c accept any non-digit for 'wildchar' - * [-]0-9 set number - * other error + * <xx> accept special key codes for 'wildchar' or 'wildcharm' + * ^x accept ctrl key codes for 'wildchar' or 'wildcharm' + * c accept any non-digit for 'wildchar' or 'wildcharm' + * [-]0-9 set number + * other error */ ++arg; if (nextchar == '&') @@ -2281,7 +2282,7 @@ do_set_option_numeric( && !VIM_ISDIGIT(*arg)))) { value = string_to_key(arg, FALSE); - if (value == 0 && (long *)varp != &p_wcm) + if (value == 0) { errmsg = e_invalid_argument; goto skip;
--- a/src/testdir/gen_opt_test.vim +++ b/src/testdir/gen_opt_test.vim @@ -7,6 +7,8 @@ if 1 set nomore +const K_KENTER = -16715 + " The terminal size is restored at the end. " Clear out t_WS, we don't want to resize the actual terminal. let script = [ @@ -55,7 +57,10 @@ let test_values = { \ 'updatecount': [[0, 1, 8, 9999], [-1]], \ 'updatetime': [[0, 1, 8, 9999], [-1]], \ 'verbose': [[-1, 0, 1, 8, 9999], []], - \ 'wildcharm': [[-1, 0, 100], []], + \ 'wildchar': [[-1, 0, 100, 'x', '^Y', '<Esc>', '<t_xx>'], + \ ['', 'xxx', '<xxx>', '<Esc', '<C-C>', '<NL>', '<CR>', K_KENTER]], + \ 'wildcharm': [[-1, 0, 100, 'x', '^Y', '<Esc>'], + \ ['', 'xxx', '<xxx>', '<Esc', '<C-C>', '<NL>', '<CR>', K_KENTER]], \ 'winheight': [[1, 10, 999], [-1, 0]], \ 'winminheight': [[0, 1], [-1]], \ 'winminwidth': [[0, 1, 10], [-1]],