]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0758: it's possible to set an invalid key to 'wildcharm' v9.1.0758
authorMilly <milly.ca@gmail.com>
Fri, 4 Oct 2024 18:41:14 +0000 (20:41 +0200)
committerChristian Brabandt <cb@256bit.org>
Fri, 4 Oct 2024 18:41:14 +0000 (20:41 +0200)
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>
src/option.c
src/testdir/gen_opt_test.vim
src/version.c

index ee9502a2ed19ab232eda801561e4ad4b3cec1044..b38d77f5ac7b44285c83fb8d577afcd7ee11f51e 100644 (file)
@@ -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;
index 936a0fa86fb343b69404ef88233addd59c04f92c..5be06cea12fd9bf9969c12e7d30f7701853184f0 100644 (file)
@@ -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]],
index 2f01df8c6e72bb0e0f58b771b17b0210cdd339bd..047db755e1891966def3b68a8cb1326f630c8a64 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    758,
 /**/
     757,
 /**/