diff --git a/src/misc1.c b/src/misc1.c index f621a8949c..1992cf9974 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -1880,15 +1880,20 @@ ins_bytes_len(p, len) # ifdef FEAT_MBYTE int n; - for (i = 0; i < len; i += n) - { - n = (*mb_ptr2len)(p + i); - ins_char_bytes(p + i, n); - } -# else - for (i = 0; i < len; ++i) - ins_char(p[i]); + if (has_mbyte) + for (i = 0; i < len; i += n) + { + if (enc_utf8) + /* avoid reading past p[len] */ + n = utfc_ptr2len_len(p + i, len - i); + else + n = (*mb_ptr2len)(p + i); + ins_char_bytes(p + i, n); + } + else # endif + for (i = 0; i < len; ++i) + ins_char(p[i]); } #endif diff --git a/src/version.c b/src/version.c index f9b88868e0..5d1958485e 100644 --- a/src/version.c +++ b/src/version.c @@ -666,6 +666,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 330, /**/ 329, /**/