]> sjero.net Git - wget/blobdiff - src/sysdep.h
[svn] Check for timegm and use it where available.
[wget] / src / sysdep.h
index f3275e9f4c73a939895779bc60e24b2b2c2038ff..44eeacde5fc06d244c81d7254fe770a3245b0621 100644 (file)
@@ -44,11 +44,11 @@ so, delete this exception statement from your version.  */
 
 #ifdef WINDOWS
 /* Windows doesn't have some functions normally found on Unix-like
-   systems, such as strcasecmp, strptime, strpbrk, etc.  Include
-   mswindows.h so we get the declarations for their replacements in
-   mswindows.c, as well as to pick up Windows-specific includes and
-   constants.  To be able to test for such features, the file must be
-   included as early as possible.  */
+   systems, such as strcasecmp, strptime, etc.  Include mswindows.h so
+   we get the declarations for their replacements in mswindows.c, as
+   well as to pick up Windows-specific includes and constants.  To be
+   able to test for such features, the file must be included as early
+   as possible.  */
 # include <mswindows.h>
 #endif
 
@@ -96,39 +96,14 @@ typedef unsigned char _Bool;
 # define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
 #endif
 
-/* Define a large integral type useful for storing large sizes that
-   exceed sizes of one download, such as when printing the sum of all
-   downloads.  Note that this has nothing to do with large file
-   support, which determines the wgint type.  This should be as large
-   as possible even on systems where when wgint is 32-bit; also,
-   unlike wgint, this can be a floating point type.
-
-   We use a 64-bit integral type where available, `double' otherwise.
-   It's hard to print LARGE_INT's portably, but fortunately it's
-   rarely needed.  */
-
-#if SIZEOF_LONG >= 8
-/* Long is large enough: use it.  */
-typedef long LARGE_INT;
-# define LARGE_INT_FMT "%ld"
-#elif SIZEOF_LONG_LONG >= 8
-/* Long long is large enough: use it.  */
-typedef long long LARGE_INT;
-# define LARGE_INT_FMT "%lld"
-#elif WINDOWS
-/* Use __int64 under Windows. */
-typedef __int64 LARGE_INT;
-# define LARGE_INT_FMT "%I64"
-#else
-/* Large integer type unavailable; fake it with `double'.  */
-typedef double LARGE_INT;
-# define LARGE_INT_FMT "%.0f"
-#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
 # define struct_stat struct stat
 #endif
+#ifndef struct_fstat
+# define struct_fstat struct stat
+#endif
 
 /* For CHAR_BIT, LONG_MAX, etc. */
 #include <limits.h>
@@ -156,6 +131,10 @@ int strncasecmp ();
 #ifndef HAVE_STRPTIME
 char *strptime ();
 #endif
+#ifndef HAVE_TIMEGM
+# include <time.h>
+time_t timegm (struct tm *);
+#endif
 
 /* These are defined in snprintf.c.  It would be nice to have an
    snprintf.h, though.  */