1 /* @(#)windows.h 1.4 13/10/26 Copyright 2011-2013 J. Schilling */ 2 /* 3 * Definitions for windows.h 4 * 5 * Copyright (c) 2011-2013 J. Schilling 6 */ 7 /* 8 * The contents of this file are subject to the terms of the 9 * Common Development and Distribution License, Version 1.0 only 10 * (the "License"). You may not use this file except in compliance 11 * with the License. 12 * 13 * See the file CDDL.Schily.txt in this distribution for details. 14 * A copy of the CDDL is also available via the Internet at 15 * http://www.opensource.org/licenses/cddl1.txt 16 * 17 * When distributing Covered Code, include this CDDL HEADER in each 18 * file and include the License file CDDL.Schily.txt from this distribution. 19 */ 20 21 #ifndef _SCHILY_WINDOWS_H 22 #define _SCHILY_WINDOWS_H 23 24 #ifndef _SCHILY_MCONFIG_H 25 #include <schily/mconfig.h> 26 #endif 27 28 #ifdef HAVE_WINDOWS_H 29 #ifndef _INCL_WINDOWS_H 30 31 /* 32 * configure believes they are missing and #define's them: 33 */ 34 #if defined(_MSC_VER) || defined(__MINGW32__) 35 /* BEGIN CSTYLED */ 36 #undef u_char 37 #undef u_short 38 #undef u_int 39 #undef u_long 40 /* END CSTYLED */ 41 #endif 42 43 #if defined(__CYGWIN32__) || defined(__CYGWIN__) 44 45 /* 46 * Cygwin-1.7.17 (Autumn 2012) makes life hard as it prevents to rename 47 * the Cygwin BOOL definition. Note that we have our own BOOL definition 48 * in schily/standard.h that exists since 1982 which happened before Microsoft 49 * introduced their BOOL. 50 * 51 * Previous Cygwin versions have been compatible to the original MS include 52 * files and allowed to rename the BOOL from windows.h (windef.h) by just using 53 * #define BOOL WBOOL before #include <windows.h>. 54 * 55 * Recent Cygwin version are unfriendly to us and prevent this. 56 * We now need a two level #define to redirect the BOOL from windows.h to the 57 * Cygwin specific WINBOOL typedef. 58 * 59 * If we do not include schily/standard.h with newer Cygwin, we cannot get 60 * working typedefs for "PBOOL" and "LPBOOL". 61 */ 62 #include <schily/standard.h> /* Get our BOOL typedef */ 63 64 #define _NO_BOOL_TYPEDEF /* Avoid 2nd BOOL typedef on Cygwin-1.7.17 */ 65 66 #define WBOOL WINBOOL /* Cygwin-1.7.17 prevents to avoid BOOL */ 67 #endif /* defined(__CYGWIN32__) || defined(__CYGWIN__) */ 68 69 70 #define BOOL WBOOL /* This is the Win BOOL */ 71 #define format __ms_format /* Avoid format parameter hides global ... */ 72 73 #ifdef timerclear /* struct timeval has already been declared */ 74 #define timeval __ms_timeval 75 #endif 76 77 #include <windows.h> 78 79 #undef BOOL /* MS Code uses WBOOL or #define BOOL WBOOL */ 80 #undef format /* Return to previous definition */ 81 #undef timeval 82 83 #define _INCL_WINDOWS_H 84 #endif 85 86 #endif /* HAVE_WINDOWS_H */ 87 88 #endif /* _SCHILY_WINDOWS_H */ 89