Hi,
On 10/06/13 00:45, morphiend wrote:
_chsize_s (MSVCRT.@)
- */
+int CDECL MSVCRT__chsize_s(int fd, __int64 size) +{
- LARGE_INTEGER cur, pos;
- LARGE_INTEGER temp = { 0 };
This causes compilation warnings. There's also a trailing space in this line.
- TRACE("(fd=%d, size=%lld)\n", fd, size);
You can't print 64-bit numbers this way, it's not portable. You can use wine_dbgstr_longlong function.
- handle = msvcrt_fdtoh(fd);
- if (!MSVCRT_CHECK_PMT_ERR(handle == INVALID_HANDLE_VALUE, MSVCRT_EBADF) ||
!MSVCRT_CHECK_PMT_ERR(size < 0, MSVCRT_EINVAL))
You're validating parameters incorrectly. Did you test this patch?
{
ret = SetEndOfFile(handle);
if (!ret)
{
msvcrt_set_errno(GetLastError());
ret = *MSVCRT__errno();
}
This causes the _chsize_s function to return TRUE in case of success.
/* restore the file pointer */
MSVCRT__lseek(fd, cur.QuadPart, SEEK_SET);
MSVCRT__lseek takes LONG as second argument.
Cheers, Piotr