111
/* Define a large integral type useful for storing large sizes that
112
exceed sizes of one download, such as when printing the sum of all
113
downloads. Note that this has nothing to do with large file
114
support, which determines the wgint type. This should be as large
115
as possible even on systems where when wgint is 32-bit; also,
116
unlike wgint, this can be a floating point type.
118
We use a 64-bit integral type where available, `double' otherwise.
119
It's hard to print LARGE_INT's portably, but fortunately it's
123
/* Long is large enough: use it. */
124
typedef long LARGE_INT;
125
# define LARGE_INT_FMT "%ld"
127
# if SIZEOF_LONG_LONG >= 8
128
/* Long long is large enough: use it. */
129
typedef long long LARGE_INT;
130
# define LARGE_INT_FMT "%lld"
133
/* Use __int64 under Windows. */
134
typedef __int64 LARGE_INT;
135
# define LARGE_INT_FMT "%I64"
137
/* Large integer type unavailable; use `double' instead. */
138
typedef double LARGE_INT;
139
# define LARGE_INT_FMT "%.0f"
144
/* Under Windows we #define struct_stat to struct _stati64. */
111
/* These are needed so we can #define struct_stat to struct _stati64
145
113
#ifndef struct_stat
146
114
# define struct_stat struct stat
117
# define struct_fstat struct stat
149
120
#ifdef HAVE_LIMITS_H
150
121
# include <limits.h>
187
158
#ifndef HAVE_MEMMOVE
188
159
void *memmove ();
162
time_t timegm (struct tm *);
191
165
/* SunOS brain damage -- for some reason, SunOS header files fail to
192
166
declare the functions below, which causes all kinds of problems,