]> sjero.net Git - wget/blobdiff - src/mswindows.h
[svn] Unify Windows-related config.h files into windows/config.h and
[wget] / src / mswindows.h
index fbf04ff29842d9ec2e65392a53ea6a45ecc20872..948d98396ef78fa57f7b5023adb7b3d737d67b3a 100644 (file)
@@ -1,6 +1,5 @@
 /* Declarations for windows
-   Copyright (C) 1995, 1997, 1997, 1998, 2004
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2005 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -15,8 +14,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with Wget; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+along with Wget; if not, write to the Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 
 In addition, as a special exception, the Free Software Foundation
 gives permission to link the code of its release of Wget with the
@@ -67,9 +66,13 @@ so, delete this exception statement from your version.  */
 # define S_ISLNK(a) 0
 #endif
 
-/* We have strcasecmp and strncasecmp, just under a different name.  */
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
+/* We have strcasecmp and strncasecmp, just under different names.  */
+#ifndef HAVE_STRCASECMP
+# define strcasecmp stricmp
+#endif
+#ifndef HAVE_STRNCASECMP
+# define strncasecmp strnicmp
+#endif
 
 /* The same for snprintf() and vsnprintf().  */
 #define snprintf _snprintf
@@ -78,12 +81,7 @@ so, delete this exception statement from your version.  */
 /* Define a wgint type under Windows. */
 typedef __int64 wgint;
 #define SIZEOF_WGINT 8
-
-#ifdef __GNUC__
-#define WGINT_MAX 9223372036854775807LL
-#else
-#define WGINT_MAX 9223372036854775807I64
-#endif
+#define WGINT_MAX LL (9223372036854775807)
 
 /* str_to_wgint is a function with the semantics of strtol, but which
    works on wgint.  Since wgint is unconditionally 64-bit on Windows,
@@ -96,53 +94,16 @@ __int64 str_to_int64 (const char *, char **, int);
    is equivalent to stat anyway.  */
 #define lstat stat
 
-/* Transparently support statting large files, like POSIX's LFS API
-   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)
-
-/* 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__
-# define fstat(fd, buf) _fstati64 (fd, buf)
-# 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 '\\'
 
-#ifdef HAVE_ISATTY
-#ifdef _MSC_VER
-# define isatty _isatty
-#endif
-#endif
-
 /* Win32 doesn't support the MODE argument to mkdir.  */
-#define mkdir(a, b) _mkdir(a)
+#include <direct.h>
+#define mkdir(a, b) (mkdir) (a)
 
 /* Additional declarations needed for IPv6: */
 #ifdef ENABLE_IPV6
-/* Missing declaration? */
-extern const char *inet_ntop (int, const void *, char *, size_t);
-/* MinGW 3.7 (or older) prototypes gai_strerror(), but is missing
-   from all import libraries. */
-# ifdef __MINGW32__
-#  undef gai_strerror
-#  define gai_strerror windows_strerror
-# endif
-#endif /* ENABLE_IPV6 */
+const char *inet_ntop (int, const void *, char *, socklen_t);
+#endif
 
 #ifndef INHIBIT_WRAP
 
@@ -151,6 +112,8 @@ extern const char *inet_ntop (int, const void *, char *, size_t);
 #define socket wrapped_socket
 #define bind wrapped_bind
 #define connect wrapped_connect
+#define listen wrapped_listen
+#define accept wrapped_accept
 #define recv wrapped_recv
 #define send wrapped_send
 #define select wrapped_select
@@ -164,6 +127,8 @@ extern const char *inet_ntop (int, const void *, char *, size_t);
 int wrapped_socket (int, int, int);
 int wrapped_bind (int, struct sockaddr *, int);
 int wrapped_connect (int, const struct sockaddr *, int);
+int wrapped_listen (int s, int backlog);
+int wrapped_accept (int s, struct sockaddr *a, int *alen);
 int wrapped_recv (int, void *, int, int);
 int wrapped_send (int, const void *, int, int);
 int wrapped_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *);