updated for version 7.0062
diff --git a/src/mbyte.c b/src/mbyte.c
index 89b53c2..695b651 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -990,6 +990,10 @@
{
buf[0] = (unsigned)c >> 8;
buf[1] = c;
+ /* Never use a NUL byte, it causes lots of trouble. It's an invalid
+ * character anyway. */
+ if (buf[1] == NUL)
+ buf[1] = '\n';
return 2;
}
buf[0] = c;
@@ -3087,7 +3091,14 @@
*to++ = '?';
if ((*mb_ptr2cells)((char_u *)from) > 1)
*to++ = '?';
- l = (*mb_ptr2len_check)((char_u *)from);
+ if (enc_utf8)
+ l = utfc_ptr2len_check_len((char_u *)from, fromlen);
+ else
+ {
+ l = (*mb_ptr2len_check)((char_u *)from);
+ if (l > fromlen)
+ l = fromlen;
+ }
from += l;
fromlen -= l;
}