]> sjero.net Git - wget/blobdiff - src/sysdep.h
[svn] Remove support for Watcom's compiler.
[wget] / src / sysdep.h
index 17d3f6727e54879f8bf1d4a99d48051bee75dd9b..f3275e9f4c73a939895779bc60e24b2b2c2038ff 100644 (file)
@@ -43,25 +43,32 @@ 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, 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.  */
+# include <mswindows.h>
+#endif
+
+/* Provide support for C99-type boolean type "bool".  This blurb comes
+   straight from the Autoconf 2.59 manual. */
+#if HAVE_STDBOOL_H
+# include <stdbool.h>
+#else
+# if ! HAVE__BOOL
+#  ifdef __cplusplus
+typedef bool _Bool;
+#  else
+typedef unsigned char _Bool;
+#  endif
+# endif
+# define bool _Bool
+# define false 0
+# define true 1
+# define __bool_true_false_are_defined 1
+#endif
 
 /* Needed for compilation under OS/2: */
 #ifdef __EMX__
@@ -104,22 +111,18 @@ so, delete this exception statement from your version.  */
 /* Long is large enough: use it.  */
 typedef long LARGE_INT;
 # define LARGE_INT_FMT "%ld"
-#else
-# if SIZEOF_LONG_LONG >= 8
+#elif SIZEOF_LONG_LONG >= 8
 /* Long long is large enough: use it.  */
 typedef long long LARGE_INT;
-#  define LARGE_INT_FMT "%lld"
-# else
-#  if _MSC_VER
+# 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; use `double' instead.  */
+# define LARGE_INT_FMT "%I64"
+#else
+/* Large integer type unavailable; fake it with `double'.  */
 typedef double LARGE_INT;
-#   define LARGE_INT_FMT "%.0f"
-#  endif
-# endif
+# define LARGE_INT_FMT "%.0f"
 #endif
 
 /* Under Windows we #define struct_stat to struct _stati64. */