diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-11-13 08:29:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-13 08:29:05 +0800 |
commit | 849394e4e26f487586761a3640475c27ceca30b9 (patch) | |
tree | 9d77b58ace60d150dd42c617cdab2af0495c2a5e /src/nvim/eval/typval.c | |
parent | ec449c27fdad6cc907a6f4835ce28f31990ad519 (diff) | |
download | rneovim-849394e4e26f487586761a3640475c27ceca30b9.tar.gz rneovim-849394e4e26f487586761a3640475c27ceca30b9.tar.bz2 rneovim-849394e4e26f487586761a3640475c27ceca30b9.zip |
vim-patch:9.0.0863: col() and charcol() only work for the current window (#21038)
Problem: col() and charcol() only work for the current window.
Solution: Add an optional winid argument. (Yegappan Lakshmanan,
closes vim/vim#11466, closes vim/vim#11461)
https://github.com/vim/vim/commit/4c8d2f02b3ce037bbe1d5ee12887e343c6bde88f
Cherry-pick test_functions.vim change from patch 8.2.0633.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Diffstat (limited to 'src/nvim/eval/typval.c')
-rw-r--r-- | src/nvim/eval/typval.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index e09fda173b..7e4066adb7 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -46,6 +46,8 @@ static char e_non_empty_string_required_for_argument_nr[] = N_("E1175: Non-empty string required for argument %d"); static char e_number_required_for_argument_nr[] = N_("E1210: Number required for argument %d"); +static char e_string_or_list_required_for_argument_nr[] + = N_("E1222: String or List required for argument %d"); bool tv_in_free_unref_items = false; @@ -3880,6 +3882,17 @@ int tv_check_for_opt_number_arg(const typval_T *const args, const int idx) || tv_check_for_number_arg(args, idx) != FAIL) ? OK : FAIL; } +/// Give an error and return FAIL unless "args[idx]" is a string or a list. +int tv_check_for_string_or_list_arg(const typval_T *const args, const int idx) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_PURE +{ + if (args[idx].v_type != VAR_STRING && args[idx].v_type != VAR_LIST) { + semsg(_(e_string_or_list_required_for_argument_nr), idx + 1); + return FAIL; + } + return OK; +} + /// Get the string value of a "stringish" VimL object. /// /// @param[in] tv Object to get value of. |