]> sjero.net Git - wget/blobdiff - src/sysdep.h
[svn] Rename LARGE_INT to SUM_SIZE_INT, and simplify its handling.
[wget] / src / sysdep.h
index a3bebe97b5f78932f09b013b780ce0ec4138cbed..408083f885cc613fe35acc5324ae1d9da21831ee 100644 (file)
@@ -43,25 +43,14 @@ so, delete this exception statement from your version.  */
 #endif
 
 #ifdef WINDOWS
-/* Windows doesn't have some functions.  Include mswindows.h so we get
-   their declarations, as well as some additional declarations and
-   macros.  This must come first, so it can set things up.  */
-#include <mswindows.h>
-#endif /* WINDOWS */
-
-/* Watcom-specific stuff.  In practice this is probably specific to
-   Windows, although Watcom exists under other OS's too.  For that
-   reason, we keep this here.  */
-
-#ifdef __WATCOMC__
-/* Watcom has its own alloca() defined in malloc.h malloc.h needs to
-   be included in the sources to prevent 'undefined external' errors
-   at the link phase. */
-# include <malloc.h>
-/* io.h defines unlink() and chmod().  We put this here because it's
-   way too obscure to require all the .c files to observe.  */
-# include <io.h>
-#endif /* __WATCOMC__ */
+/* Windows doesn't have some functions normally found on Unix-like
+   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
 
 /* Provide support for C99-type boolean type "bool".  This blurb comes
    straight from the Autoconf 2.59 manual. */
@@ -107,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 _MSC_VER
-/* 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>