summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>2004-11-15 15:06:53 +0000
committerAlexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>2004-11-15 15:06:53 +0000
commitdd82af84ed67f439444e75ea1d032c082e15db51 (patch)
treeba069fd043c20624e5723efec4952e376a9c77c4
parent618956f1f783a8c330aab8eac425937f0b8e50e1 (diff)
Bufzilla #1802, http://freedesktop.org/bugzilla/show_bug.cgi?id=1802 Added
mingw (Win32) port
-rw-r--r--Xos.h5
-rw-r--r--Xthreads.h2
-rw-r--r--Xw32defs.h9
-rw-r--r--Xwindows.h75
-rw-r--r--Xwinsock.h16
5 files changed, 104 insertions, 3 deletions
diff --git a/Xos.h b/Xos.h
index 05060c7..a7d8b2c 100644
--- a/Xos.h
+++ b/Xos.h
@@ -1,5 +1,5 @@
/*
- * $XdotOrg: xc/include/Xos.h,v 1.1.4.4 2004/02/16 20:55:02 alanc Exp $
+ * $XdotOrg: xc/include/Xos.h,v 1.2 2004/04/23 18:43:05 eich Exp $
* $Xorg: Xos.h,v 1.6 2001/02/09 02:03:22 xorgcvs Exp $
*
*
@@ -211,11 +211,12 @@ struct timezone {
#define _POSIX_SOURCE
#elif defined(WIN32)
#include <time.h>
-#if !defined(_WINSOCKAPI_) && !defined(_WILLWINSOCK_)
+#if !defined(_WINSOCKAPI_) && !defined(_WILLWINSOCK_) && !defined(_TIMEVAL_DEFINED) && !defined(_STRUCT_TIMEVAL)
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
+#define _TIMEVAL_DEFINED
#endif
#include <sys/timeb.h>
#define gettimeofday(t) \
diff --git a/Xthreads.h b/Xthreads.h
index 8d4f4e8..94262eb 100644
--- a/Xthreads.h
+++ b/Xthreads.h
@@ -94,6 +94,7 @@ typedef mutex_t xmutex_rec;
#else /* !SVR4 */
#ifdef WIN32
#define BOOL wBOOL
+#define INT32 wINT32
#ifdef Status
#undef Status
#define Status wStatus
@@ -103,6 +104,7 @@ typedef mutex_t xmutex_rec;
#undef Status
#define Status int
#endif
+#undef INT32
#undef BOOL
typedef DWORD xthread_t;
typedef DWORD xthread_key_t;
diff --git a/Xw32defs.h b/Xw32defs.h
index 6b661c4..07624fe 100644
--- a/Xw32defs.h
+++ b/Xw32defs.h
@@ -3,6 +3,13 @@
#ifndef _XW32DEFS_H
#define _XW32DEFS_H
+#ifdef __GNUC__ /* mingw is more close to unix than msvc */
+#if !defined(__daddr_t_defined)
+typedef char *caddr_t;
+#endif
+#define lstat stat
+
+#else
typedef char *caddr_t;
#define access _access
@@ -70,5 +77,5 @@ typedef char *caddr_t;
#define X_OK 1
#define W_OK 2
#define R_OK 4
-
+#endif /* __GNUC__ */
#endif
diff --git a/Xwindows.h b/Xwindows.h
new file mode 100644
index 0000000..bd23dba
--- /dev/null
+++ b/Xwindows.h
@@ -0,0 +1,75 @@
+/* $Xorg$ */
+/*
+
+Copyright 1996, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL-
+ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization from
+The Open Group.
+
+*/
+
+/*
+ * This header file has for sole purpose to allow to include windows.h
+ * without getting any name conflicts with our code.
+ * Conflicts come from the fact that including windows.h actually pulls
+ * in the whole Windows API...
+ */
+
+#undef _XFree86Server
+#ifdef XFree86Server
+#define _XFree86Server
+#undef XFree86Server
+#endif
+
+#define BOOL wBOOL
+#define INT32 wINT32
+#undef Status
+#define Status wStatus
+#define ATOM wATOM
+#define BYTE wBYTE
+#define FreeResource wFreeResource
+#include <windows.h>
+#undef Status
+#define Status int
+#undef BYTE
+#undef BOOL
+#undef INT32
+#undef ATOM
+#undef FreeResource
+#undef CreateWindowA
+#undef min
+#undef max
+
+#ifdef RESOURCE_H
+#undef RT_FONT
+#undef RT_CURSOR
+#define RT_FONT ((RESTYPE)4)
+#define RT_CURSOR ((RESTYPE)5)
+#endif
+
+#define sleep(x) Sleep(1000*x)
+
+#ifdef _XFree86Server
+#define XFree86Server
+#undef _XFree86Server
+#endif
+
diff --git a/Xwinsock.h b/Xwinsock.h
index b7599b0..0278c09 100644
--- a/Xwinsock.h
+++ b/Xwinsock.h
@@ -34,17 +34,33 @@ The Open Group.
* in the whole Windows API...
*/
+#undef _XFree86Server
+#ifdef XFree86Server
+#define _XFree86Server
+#undef XFree86Server
+#endif
+
#define BOOL wBOOL
+#define INT32 wINT32
#undef Status
#define Status wStatus
#define ATOM wATOM
+#define BYTE wBYTE
#define FreeResource wFreeResource
#include <winsock.h>
#undef Status
#define Status int
+#undef BYTE
#undef BOOL
+#undef INT32
#undef ATOM
#undef FreeResource
#undef CreateWindowA
#undef RT_FONT
#undef RT_CURSOR
+
+#ifdef _XFree86Server
+#define XFree86Server
+#undef _XFree86Server
+#endif
+