| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #if OSL_DEBUG_LEVEL == 0 |
| # define NO_DEBUG_CRT |
| #endif |
| |
| #ifndef _WIN32_WINNT |
| # define _WIN32_WINNT 0x0400 |
| # define _CTYPE_DISABLE_MACROS /* wg. dynamischer C-Runtime MH */ |
| #endif |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <stdarg.h> |
| #include <ctype.h> |
| #include <malloc.h> |
| #include <limits.h> |
| #include <process.h> |
| #include <time.h> |
| #include <fcntl.h> |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| #include <io.h> |
| #include <share.h> |
| #include <direct.h> |
| |
| /* Must define this else build breaks because Winsock2.h |
| includes Windows.h and without WIN32_LEAN_AND_MEAN |
| also includes mswsock.h which needs a forward typedef |
| of SOCKET ... |
| */ |
| #define WIN32_LEAN_AND_MEAN |
| |
| #ifdef GCC |
| // windows.h includes winsock2.h |
| // if _WIN32_WINNT > 0x0400 |
| // so someone cannot include winsock.h |
| // at the same time without patching |
| // windows.h |
| #include <windows.h> |
| #ifdef __MINGW32__ |
| #include <winsock2.h> |
| #include <ws2tcpip.h> |
| #endif |
| #include <shlobj.h> |
| #ifndef NO_DEBUG_CRT |
| #include <crtdbg.h> |
| #endif |
| #else |
| // winsock2.h includes windows.h |
| #pragma warning(push,1) /* disable warnings within system headers */ |
| #pragma warning(disable:4917) |
| #include <winsock2.h> |
| #include <wsipx.h> |
| #include <shlobj.h> |
| #ifndef NO_DEBUG_CRT |
| #include <crtdbg.h> |
| #endif |
| #pragma warning(pop) |
| #endif |
| |
| #define _MAX_CMD 4096 /* maximum length of commandline */ |
| /* #define _MAX_ENV 4096 maximum length of environment var (isn't used anywhere) */ |
| |
| #ifdef GCC |
| # ifndef SA_FAMILY_DECL |
| # define SA_FAMILY_DECL short sa_family |
| # endif |
| |
| typedef struct sockaddr_ipx { |
| SA_FAMILY_DECL; |
| char sa_netnum[4]; |
| char sa_nodenum[6]; |
| unsigned short sa_socket; |
| } SOCKADDR_IPX; |
| |
| # define NSPROTO_IPX 1000 |
| # define NSPROTO_SPX 1256 |
| # define NSPROTO_SPXII 1257 |
| #endif // #ifdef GCC |
| |
| #ifdef _DLL_ |
| |
| #ifdef __cplusplus |
| extern "C" DWORD g_dwPlatformId; |
| #else |
| extern DWORD g_dwPlatformId; |
| #endif // #ifdef __cplusplus |
| |
| #define IS_NT (g_dwPlatformId == VER_PLATFORM_WIN32_NT) |
| #else |
| |
| #ifdef __cplusplus |
| extern "C" DWORD GetPlatformId(void); |
| #else |
| extern DWORD GetPlatformId(void); |
| #endif // #ifdef __cplusplus |
| |
| #define IS_NT (GetPlatformId() == VER_PLATFORM_WIN32_NT) |
| #endif // #ifdef _DLL_ |
| |