diff options
author | cangscop <cangscop@gmail.com> | 2019-07-27 03:13:29 +0200 |
---|---|---|
committer | cangscop <cangscop@gmail.com> | 2019-07-27 16:25:33 +0200 |
commit | 0364e47ccb8705d48146f00d68506d5f9cefb0aa (patch) | |
tree | a3d527e3440f29b6babcc7a80cd43c77445f73cb /src/nvim/normal.c | |
parent | 0b4123668af65b489e188dfb1041e664a4ee3915 (diff) | |
download | rneovim-0364e47ccb8705d48146f00d68506d5f9cefb0aa.tar.gz rneovim-0364e47ccb8705d48146f00d68506d5f9cefb0aa.tar.bz2 rneovim-0364e47ccb8705d48146f00d68506d5f9cefb0aa.zip |
vim-patch:8.1.53 use typval_T in the caller of call_vim_function
Problem: unreliable types for complete function arguments
Solution: fix argument type for functions w/ unreliable type conversion(Ozaki Kiichi)
vim/vim#2993
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index d33c5d33bb..286159ac0f 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -2096,13 +2096,15 @@ static void op_function(oparg_T *oap) decl(&curbuf->b_op_end); } - const char_u *const argv[1] = { - (const char_u *)(((const char *const[]) { + typval_T argv[2]; + argv[0].v_type = VAR_STRING; + argv[1].v_type = VAR_UNKNOWN; + argv[0].vval.v_string = + (char_u *)(((const char *const[]) { [kMTBlockWise] = "block", [kMTLineWise] = "line", [kMTCharWise] = "char", - })[oap->motion_type]), - }; + })[oap->motion_type]); // Reset virtual_op so that 'virtualedit' can be changed in the // function. |