# HG changeset patch # User vimboss # Date 1178455234 0 # Node ID f0dcee927c1dd0a96d1a08fb58a741cb2f63cdc8 # Parent 700bffdaded3b3f85572e141c9a994817d88c9ed updated for version 7.1a diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -5013,13 +5013,13 @@ buf_write_bytes(ip) * buffer. The buffer has been allocated to be big enough. */ ip->bw_restlen = 0; needed = MultiByteToWideChar(enc_codepage, - MB_ERR_INVALID_CHARS, (LPCSTR)from, (int)fromlen, + MB_ERR_INVALID_CHARS, (LPCSTR)from, (int)fromlen, NULL, 0); if (needed == 0) { /* When conversion fails there may be a trailing byte. */ needed = MultiByteToWideChar(enc_codepage, - MB_ERR_INVALID_CHARS, (LPCSTR)from, (int)fromlen - 1, + MB_ERR_INVALID_CHARS, (LPCSTR)from, (int)fromlen - 1, NULL, 0); if (needed == 0) { @@ -5032,7 +5032,7 @@ buf_write_bytes(ip) ip->bw_restlen = 1; } needed = MultiByteToWideChar(enc_codepage, MB_ERR_INVALID_CHARS, - (LPCSTR)from, (int)(fromlen - ip->bw_restlen), + (LPCSTR)from, (int)(fromlen - ip->bw_restlen), (LPWSTR)to, needed); if (needed == 0) { @@ -5072,7 +5072,8 @@ buf_write_bytes(ip) * fail. */ len = WideCharToMultiByte(FIO_GET_CP(flags), 0, (LPCWSTR)ip->bw_conv_buf, (int)fromlen / sizeof(WCHAR), - (LPSTR)to, (int)(ip->bw_conv_buflen - fromlen), 0, &bad); + (LPSTR)to, (int)(ip->bw_conv_buflen - fromlen), 0, + &bad); if (bad) { ip->bw_conv_error = TRUE; @@ -5201,7 +5202,7 @@ buf_write_bytes(ip) #endif /* Repeat the write(), it may be interrupted by a signal. */ - while (len) + while (len > 0) { wlen = vim_write(ip->bw_fd, buf, len); if (wlen <= 0) /* error! */