Mercurial > vim
diff src/mbyte.c @ 221:7fd4b5df33be
updated for version 7.0062
author | vimboss |
---|---|
date | Sun, 20 Mar 2005 22:37:15 +0000 |
parents | c93c9cad9618 |
children | ef254e0f2365 |
line wrap: on
line diff
--- a/src/mbyte.c +++ b/src/mbyte.c @@ -990,6 +990,10 @@ dbcs_char2bytes(c, buf) { 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 @@ iconv_string(vcp, str, slen, unconvlenp) *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; }