[ros-diffs] [arty] 22216: Fix four winetests from msvcrt:file.c - The winetests show that the pointer never moves after calling chsize. - Using SetEndOfFile is the best way to do this. I wrote a test case that uses WriteFile as we did before and it did not expand the file past eof.

arty at svn.reactos.org arty at svn.reactos.org
Sun Jun 4 19:24:37 CEST 2006


Author: arty
Date: Sun Jun  4 21:24:37 2006
New Revision: 22216

URL: http://svn.reactos.ru/svn/reactos?rev=22216&view=rev
Log:
Fix four winetests from msvcrt:file.c
- The winetests show that the pointer never moves after calling chsize.
- Using SetEndOfFile is the best way to do this.  I wrote a test case that 
  uses WriteFile as we did before and it did not expand the file past eof.

Modified:
    trunk/reactos/lib/crt/io/chsize.c

Modified: trunk/reactos/lib/crt/io/chsize.c
URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/lib/crt/io/chsize.c?rev=22216&r1=22215&r2=22216&view=diff
==============================================================================
--- trunk/reactos/lib/crt/io/chsize.c (original)
+++ trunk/reactos/lib/crt/io/chsize.c Sun Jun  4 21:24:37 2006
@@ -10,9 +10,12 @@
 int _chsize(int _fd, long size)
 {
   DPRINT("_chsize(fd %d, size %d)\n", _fd, size);
+  long location = _lseek(_fd, 0, SEEK_CUR);
+  if (location == -1) return -1;
   if (_lseek(_fd, size, 0) == -1)
     return -1;
-  if (_write(_fd, 0, 0) < 0)
+  if (!SetEndOfFile((HANDLE)_get_osfhandle(_fd)))
     return -1;
+  _lseek(_fd, location, SEEK_SET);
   return 0;
 }




More information about the Ros-diffs mailing list