Fix file_io.c on DOS-like systems.

The problem was introduced when adding sparse file
support in 465d1b0d65.

Thanks to Charles Wilson.
This commit is contained in:
Lasse Collin 2009-12-07 21:46:53 +02:00
parent 0696f5d268
commit 7b76a3e233
1 changed files with 4 additions and 0 deletions

View File

@ -40,9 +40,11 @@ static bool warn_fchown;
/// If true, try to create sparse files when decompressing.
static bool try_sparse = true;
#ifndef TUKLIB_DOSLIKE
/// File status flags of standard output. This is used by io_open_dest()
/// and io_close_dest().
static int stdout_flags = 0;
#endif
static bool io_write_buf(file_pair *pair, const uint8_t *buf, size_t size);
@ -633,6 +635,7 @@ io_open_dest(file_pair *pair)
static int
io_close_dest(file_pair *pair, bool success)
{
#ifndef TUKLIB_DOSLIKE
// If io_open_dest() has disabled O_APPEND, restore it here.
if (stdout_flags != 0) {
assert(pair->dest_fd == STDOUT_FILENO);
@ -647,6 +650,7 @@ io_close_dest(file_pair *pair, bool success)
return -1;
}
}
#endif
if (pair->dest_fd == -1 || pair->dest_fd == STDOUT_FILENO)
return 0;