From dd82af84ed67f439444e75ea1d032c082e15db51 Mon Sep 17 00:00:00 2001 From: Alexander Gottwald Date: Mon, 15 Nov 2004 15:06:53 +0000 Subject: [PATCH] Bufzilla #1802, http://freedesktop.org/bugzilla/show_bug.cgi?id=1802 Added mingw (Win32) port --- Xos.h | 5 ++-- Xthreads.h | 2 ++ Xw32defs.h | 9 ++++++- Xwindows.h | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Xwinsock.h | 16 ++++++++++++ 5 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 Xwindows.h 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 -#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 #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 +#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 #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 +