Mercurial > vim
changeset 1617:5f0c7aae4da2 v7.1.330
updated for version 7.1-330
author | vimboss |
---|---|
date | Sat, 21 Jun 2008 14:30:28 +0000 |
parents | dbef8434a2ea |
children | 46bbe11644e0 |
files | src/misc1.c src/version.c |
diffstat | 2 files changed, 15 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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