diff options
author | Michael Ennen <mike.ennen@gmail.com> | 2016-10-23 17:10:14 -0700 |
---|---|---|
committer | Michael Ennen <mike.ennen@gmail.com> | 2016-10-24 12:49:17 -0700 |
commit | f6f77272b3233ea2926e2d7fb2c007e381a85ea1 (patch) | |
tree | 78a243cdbda270f9e73bbfa43536e6c47fba0f57 /src | |
parent | 6bc0d9b8c75b5bef61a951e56deb2b28f50182d8 (diff) | |
download | rneovim-f6f77272b3233ea2926e2d7fb2c007e381a85ea1.tar.gz rneovim-f6f77272b3233ea2926e2d7fb2c007e381a85ea1.tar.bz2 rneovim-f6f77272b3233ea2926e2d7fb2c007e381a85ea1.zip |
vim-patch:7.4.1782
Problem: strcharpart() does not work properly with some multi-byte
characters.
Solution: Use mb_cptr2len() instead of mb_char2len(). (Hirohito Higashi)
https://github.com/vim/vim/commit/fca66003053f8c0da5161d1fe4b75b3a389934b5
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 6 | ||||
-rw-r--r-- | src/nvim/eval.lua | 2 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index a9079c5519..4eb3b36464 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -15762,7 +15762,7 @@ static void f_strcharpart(typval_T *argvars, typval_T *rettv, FunPtr fptr) { if (!error) { if (nchar > 0) { while (nchar > 0 && nbyte < slen) { - nbyte += mb_char2len(p[nbyte]); + nbyte += mb_cptr2len(p + nbyte); nchar--; } } else { @@ -15777,9 +15777,9 @@ static void f_strcharpart(typval_T *argvars, typval_T *rettv, FunPtr fptr) { if (off < 0) { len += 1; } else { - len += mb_char2len(p[off]); - charlen--; + len += mb_cptr2len(p + off); } + charlen--; } } else { len = slen - nbyte; // default: all bytes that are available. diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 633a4b1061..bea25b36f3 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -272,7 +272,7 @@ return { strchars={args={1,2}}, strdisplaywidth={args={1, 2}}, strftime={args={1, 2}}, - strgetchar={args={2,2}}, + strgetchar={args={2, 2}}, stridx={args={2, 3}}, string={args=1}, strlen={args=1}, diff --git a/src/nvim/version.c b/src/nvim/version.c index 53435e4650..153b7fb5fd 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -660,7 +660,7 @@ static int included_patches[] = { // 1785, // 1784 NA // 1783, - // 1782, + 1782, // 1781, // 1780, 1779, |