mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Use struct_fstat when calling fstat because of Borland's lack of 64-bit
fstat.
This commit is contained in:
parent
4b3e1632db
commit
cb2cc3abf8
@ -1,3 +1,12 @@
|
|||||||
|
2005-06-23 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
|
* utils.c (read_file): Ditto.
|
||||||
|
|
||||||
|
* main.c (main): Use struct_fstat.
|
||||||
|
|
||||||
|
* mswindows.h (struct_fstat): Define a struct_fstat to deal with
|
||||||
|
the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
|
||||||
|
|
||||||
2005-06-23 Hrvoje Niksic <hniksic@xemacs.org>
|
2005-06-23 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
* sysdep.h: Remove code that deals with Watcom.
|
* sysdep.h: Remove code that deals with Watcom.
|
||||||
|
@ -883,7 +883,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
|
|||||||
output_stream = stdout;
|
output_stream = stdout;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct_stat st;
|
struct_fstat st;
|
||||||
output_stream = fopen (opt.output_document,
|
output_stream = fopen (opt.output_document,
|
||||||
opt.always_rest ? "ab" : "wb");
|
opt.always_rest ? "ab" : "wb");
|
||||||
if (output_stream == NULL)
|
if (output_stream == NULL)
|
||||||
|
@ -97,28 +97,34 @@ typedef __int64 wgint;
|
|||||||
#define str_to_wgint str_to_int64
|
#define str_to_wgint str_to_int64
|
||||||
__int64 str_to_int64 (const char *, char **, int);
|
__int64 str_to_int64 (const char *, char **, int);
|
||||||
|
|
||||||
/* No lstat on Windows. */
|
/* Windows has no symlink, therefore no lstat. Without symlinks lstat
|
||||||
|
is equivalent to stat anyway. */
|
||||||
#define lstat stat
|
#define lstat stat
|
||||||
|
|
||||||
/* On Windows the 64-bit stat requires a different version of struct
|
|
||||||
stat. (On Unix too, but it happens transparently when stat is
|
|
||||||
remapped to stat64.) */
|
|
||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
|
||||||
# define struct_stat struct _stati64
|
|
||||||
#elif defined(__BORLANDC__)
|
|
||||||
# define struct_stat struct stati64
|
|
||||||
#else
|
|
||||||
# define struct_stat struct stat
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Transparently support statting large files, like POSIX's LFS API
|
/* Transparently support statting large files, like POSIX's LFS API
|
||||||
does. */
|
does. All Windows compilers we support use _stati64 (but have
|
||||||
|
different names for 2nd argument type, see below), so we use
|
||||||
|
that. */
|
||||||
#define stat(fname, buf) _stati64 (fname, buf)
|
#define stat(fname, buf) _stati64 (fname, buf)
|
||||||
|
|
||||||
|
/* On Windows the 64-bit stat requires an explicitly different type
|
||||||
|
for the 2nd argument, so we define a struct_stat macro that expands
|
||||||
|
to the appropriate type on Windows, and to the regular struct stat
|
||||||
|
on Unix.
|
||||||
|
|
||||||
|
Note that Borland C 5.5 has 64-bit stat (_stati64), but not a
|
||||||
|
64-bit fstat! Because of that we also need a struct_fstat that
|
||||||
|
points to struct_stat on Unix and on Windows, except under Borland,
|
||||||
|
where it points to the 32-bit struct stat. */
|
||||||
|
|
||||||
#ifndef __BORLANDC__
|
#ifndef __BORLANDC__
|
||||||
# define fstat(fd, buf) _fstati64 (fd, buf)
|
# define fstat(fd, buf) _fstati64 (fd, buf)
|
||||||
#endif
|
# define struct_stat struct _stati64
|
||||||
|
# define struct_fstat struct _stati64
|
||||||
|
#else /* __BORLANDC__ */
|
||||||
|
# define struct_stat struct stati64
|
||||||
|
# define struct_fstat struct stat
|
||||||
|
#endif /* __BORLANDC__ */
|
||||||
|
|
||||||
#define PATH_SEPARATOR '\\'
|
#define PATH_SEPARATOR '\\'
|
||||||
|
|
||||||
|
@ -125,10 +125,14 @@ typedef double LARGE_INT;
|
|||||||
# define LARGE_INT_FMT "%.0f"
|
# define LARGE_INT_FMT "%.0f"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Under Windows we #define struct_stat to struct _stati64. */
|
/* These are needed so we can #define struct_stat to struct _stati64
|
||||||
|
under Windows. */
|
||||||
#ifndef struct_stat
|
#ifndef struct_stat
|
||||||
# define struct_stat struct stat
|
# define struct_stat struct stat
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef struct_fstat
|
||||||
|
# define struct_fstat struct stat
|
||||||
|
#endif
|
||||||
|
|
||||||
/* For CHAR_BIT, LONG_MAX, etc. */
|
/* For CHAR_BIT, LONG_MAX, etc. */
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
@ -917,7 +917,7 @@ read_file (const char *file)
|
|||||||
|
|
||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
{
|
{
|
||||||
struct_stat buf;
|
struct_fstat buf;
|
||||||
if (fstat (fd, &buf) < 0)
|
if (fstat (fd, &buf) < 0)
|
||||||
goto mmap_lose;
|
goto mmap_lose;
|
||||||
fm->length = buf.st_size;
|
fm->length = buf.st_size;
|
||||||
|
Loading…
Reference in New Issue
Block a user