From 2168d772b864fd05109fb4299e409d4bdc1df39d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 2 Oct 2024 07:39:28 +0800 Subject: 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 --- src/nvim/ex_getln.c | 2 +- src/nvim/options.lua | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') 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=\\" - exe "set cedit=\\" + type. The preferred way is to use |key-notation| (e.g. , ) or + a letter preceded with a caret (e.g. `^F` is CTRL-F). Examples: >vim + set cedit=^Y + set cedit= < |Nvi| also has this option, but it only uses the first character. See |cmdwin|. ]=], -- cgit