diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-10-02 07:39:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-01 23:39:28 +0000 |
commit | 2168d772b864fd05109fb4299e409d4bdc1df39d (patch) | |
tree | cb1fe68d2831a0315faa433a7605911b798d62f1 | |
parent | d983599613ae19190369c0577a409ede3b1ded38 (diff) | |
download | rneovim-2168d772b864fd05109fb4299e409d4bdc1df39d.tar.gz rneovim-2168d772b864fd05109fb4299e409d4bdc1df39d.tar.bz2 rneovim-2168d772b864fd05109fb4299e409d4bdc1df39d.zip |
vim-patch:9.1.0752: can set 'cedit' to an invalid value (#30616)
Problem: can set cedit to an invalid value
Solution: Check that the value is a valid key name
(Milly)
closes: vim/vim#15778
https://github.com/vim/vim/commit/25732435c56d762abb260499680939bd8882c708
Co-authored-by: Milly <milly.ca@gmail.com>
-rw-r--r-- | runtime/doc/options.txt | 7 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/options.lua | 7 | ||||
-rw-r--r-- | src/nvim/ex_getln.c | 2 | ||||
-rw-r--r-- | src/nvim/options.lua | 7 |
4 files changed, 13 insertions, 10 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 53847cf36d..2a8eb50acd 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1276,9 +1276,10 @@ A jump table for the options with a short description can be found at |Q_op|. The key used in Command-line Mode to open the command-line window. Only non-printable keys are allowed. The key can be specified as a single character, but it is difficult to - type. The preferred way is to use the <> notation. Examples: >vim - exe "set cedit=\<C-Y>" - exe "set cedit=\<Esc>" + type. The preferred way is to use |key-notation| (e.g. <Up>, <C-F>) or + a letter preceded with a caret (e.g. `^F` is CTRL-F). Examples: >vim + set cedit=^Y + set cedit=<Esc> < |Nvi| also has this option, but it only uses the first character. See |cmdwin|. diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 923d279887..76715e1d9b 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -731,11 +731,12 @@ vim.go.cd = vim.go.cdpath --- The key used in Command-line Mode to open the command-line window. --- Only non-printable keys are allowed. --- The key can be specified as a single character, but it is difficult to ---- type. The preferred way is to use the <> notation. Examples: +--- type. The preferred way is to use `key-notation` (e.g. <Up>, <C-F>) or +--- a letter preceded with a caret (e.g. `^F` is CTRL-F). Examples: --- --- ```vim ---- exe "set cedit=\\<C-Y>" ---- exe "set cedit=\\<Esc>" +--- set cedit=^Y +--- set cedit=<Esc> --- ``` --- `Nvi` also has this option, but it only uses the first character. --- See `cmdwin`. diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 69fcdac095..7d87e609ca 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -4302,7 +4302,7 @@ const char *did_set_cedit(optset_T *args) cedit_key = -1; } else { int n = string_to_key(p_cedit); - if (vim_isprintc(n)) { + if (n == 0 || vim_isprintc(n)) { return e_invarg; } cedit_key = n; diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 9d50b04221..825bde5c85 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -996,9 +996,10 @@ return { The key used in Command-line Mode to open the command-line window. Only non-printable keys are allowed. The key can be specified as a single character, but it is difficult to - type. The preferred way is to use the <> notation. Examples: >vim - exe "set cedit=\\<C-Y>" - exe "set cedit=\\<Esc>" + type. The preferred way is to use |key-notation| (e.g. <Up>, <C-F>) or + a letter preceded with a caret (e.g. `^F` is CTRL-F). Examples: >vim + set cedit=^Y + set cedit=<Esc> < |Nvi| also has this option, but it only uses the first character. See |cmdwin|. ]=], |