1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is mozilla.org code.
16 *
17 * The Initial Developer of the Original Code is
18 * Netscape Communications Corporation.
19 * Portions created by the Initial Developer are Copyright (C) 1998
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * Alternatively, the contents of this file may be used under the terms of
25 * either the GNU General Public License Version 2 or later (the "GPL"), or
26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 * in which case the provisions of the GPL or the LGPL are applicable instead
28 * of those above. If you wish to allow use of your version of this file only
29 * under the terms of either the GPL or the LGPL, and not to allow others to
30 * use your version of this file under the terms of the MPL, indicate your
31 * decision by deleting the provisions above and replace them with the notice
32 * and other provisions required by the GPL or the LGPL. If you do not delete
33 * the provisions above, a recipient may use your version of this file under
34 * the terms of any one of the MPL, the GPL or the LGPL.
35 *
36 * ***** END LICENSE BLOCK ***** */
37
38#ifndef __XP_H__
39#define __XP_H__
40#define _CRT_SECURE_NO_DEPRECATE
41
42/*****************************************************/
43
44#ifdef XP_WIN
45
46  #include <windows.h>
47
48#endif
49
50/*****************************************************/
51
52
53#ifdef XP_MAC
54 	#include <all.h>
55#endif
56
57#if (defined XP_MAC || defined XP_UNIX)
58
59	typedef unsigned char	BYTE;
60
61	#define strcmpi  strcmp
62
63#endif
64
65
66/*****************************************************/
67
68#ifdef XP_UNIX
69	#include <stdio.h>
70	#include <string.h>       /* strcat() */
71  #include <sys/types.h>    /* stat() */
72  #include <sys/stat.h>
73  #include <stdlib.h>       /* atoi() */
74  #include <assert.h>       /* assert() */
75  #include <ctype.h>        /* isprint() */
76
77	#ifndef FALSE
78	#define FALSE			  false
79	#endif
80
81	#ifndef TRUE
82	#define TRUE			  true
83	#endif
84
85  #ifndef HIBYTE
86  #define HIBYTE(x)       ((((u_int)(x)) & 0xff00)>>8)
87  #endif
88
89  #ifndef LOBYTE
90  #define LOBYTE(x)       (((u_int)(x)) & 0x00ff)
91  #endif
92
93  #ifndef XP_EXPORT_API
94  #define XP_EXPORT_API
95  #endif
96
97#endif
98
99/*****************************************************/
100
101#ifdef XP_WIN
102
103  #define XP_HFILE        HFILE
104  #define XP_HLIB         HINSTANCE
105
106  #define XP_EXPORT_API   WINAPI
107
108#else
109
110  #define XP_HFILE        FILE*
111
112  #ifndef DWORD
113  #define DWORD           unsigned long
114  #endif
115
116  #ifndef UINT
117  #define UINT            unsigned int
118  #endif
119
120  #ifndef WORD
121  #define WORD            unsigned short
122  #endif
123
124  #ifndef BOOL
125  #define BOOL		  bool
126  #endif
127
128  #if (defined XP_UNIX)			/* For IRIX */
129    #ifndef bool
130    #define bool		  unsigned char
131    #endif
132  #endif
133
134#endif
135
136
137
138/*****************************************************/
139
140#ifndef _MAX_PATH
141  #define _MAX_PATH       256
142#endif
143
144#ifdef XP_WIN
145  #define DIR_SEPARATOR "\\"
146#endif
147
148#ifdef XP_UNIX
149  #define DIR_SEPARATOR "/"
150#endif
151
152#ifdef XP_MAC
153  #define DIR_SEPARATOR ":"
154#endif
155
156/*****************************************************/
157
158// File utilities
159BOOL XP_IsFile(char * szFileName);
160XP_HFILE XP_CreateFile(char * szFileName);
161XP_HFILE XP_OpenFile(char * szFileName);
162void XP_CloseFile(XP_HFILE hFile);
163void XP_DeleteFile(char * szFileName);
164DWORD XP_WriteFile(XP_HFILE hFile, const void * pBuf, int iSize);
165void XP_FlushFileBuffers(XP_HFILE hFile);
166
167
168// misc
169void * XP_GetSymbol(XP_HLIB hLib, char * szProcName);
170
171#endif
172