mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-19 07:22:14 +08:00
2004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
* syscalls.cc (ftruncate64): On 9x, call write with a zero length to zero fill when the file is extended.
This commit is contained in:
parent
5796021e86
commit
2e41976b56
@ -1,3 +1,8 @@
|
||||
2004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
|
||||
|
||||
* syscalls.cc (ftruncate64): On 9x, call write with a zero length
|
||||
to zero fill when the file is extended.
|
||||
|
||||
2004-08-24 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* syscalls.cc (link): Avoid compiler warning.
|
||||
|
@ -1676,7 +1676,7 @@ setmode (int fd, int mode)
|
||||
extern "C" int
|
||||
ftruncate64 (int fd, _off64_t length)
|
||||
{
|
||||
int res = -1;
|
||||
int res = -1, res_bug = 0;
|
||||
|
||||
if (length < 0)
|
||||
set_errno (EINVAL);
|
||||
@ -1693,10 +1693,13 @@ ftruncate64 (int fd, _off64_t length)
|
||||
_off64_t prev_loc = cfd->lseek (0, SEEK_CUR);
|
||||
|
||||
cfd->lseek (length, SEEK_SET);
|
||||
/* Fill the space with 0, if needed */
|
||||
if (wincap.has_lseek_bug ())
|
||||
res_bug = cfd->write (&res, 0);
|
||||
if (!SetEndOfFile (h))
|
||||
__seterrno ();
|
||||
else
|
||||
res = 0;
|
||||
res = res_bug;
|
||||
|
||||
/* restore original file pointer location */
|
||||
cfd->lseek (prev_loc, SEEK_SET);
|
||||
|
Loading…
x
Reference in New Issue
Block a user