diff options
author | vimboss <devnull@localhost> | 2008-06-21 14:30:28 +0000 |
---|---|---|
committer | vimboss <devnull@localhost> | 2008-06-21 14:30:28 +0000 |
commit | 5ad9cbafdc52c397b824a56cc1d2053ce1d710ce (patch) | |
tree | a7e8d3aa9c8e90725331a649a534815788202491 | |
parent | e7f98bc0caad4337dee83025e5bbed6781b88e75 (diff) | |
download | vim-5ad9cbafdc52c397b824a56cc1d2053ce1d710ce.tar.gz |
-rw-r--r-- | src/misc1.c | 21 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 15 insertions, 8 deletions
diff --git a/src/misc1.c b/src/misc1.c index f621a894..1992cf99 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 f9b88868..5d195848 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 330, +/**/ 329, /**/ 328, |