1 #ifndef QPLATFORMDEFS_H
2 #define QPLATFORMDEFS_H
3 
4 #ifdef UNICODE
5 #ifndef _UNICODE
6 #define _UNICODE
7 #endif
8 #endif
9 
10 // Get Qt defines/settings
11 
12 #include "qglobal.h"
13 #define Q_FS_FAT
14 
15 #define _POSIX_
16 #include <limits.h>
17 #undef _POSIX_
18 
19 #include <tchar.h>
20 #include <io.h>
21 #include <direct.h>
22 #include <stdio.h>
23 #include <fcntl.h>
24 #include <errno.h>
25 #include <sys/stat.h>
26 #include <dos.h>
27 #include <stdlib.h>
28 #include <windows.h>
29 
30 #if __BORLANDC__ >= 0x550
31 // Borland Builder 6
32 
33 #ifdef QT_LARGEFILE_SUPPORT
34 #  define QT_STATBUF		struct stati64		// non-ANSI defs
35 #  define QT_STATBUF4TSTAT	struct stati64		// non-ANSI defs
36 #  define QT_STAT		::_stati64
37 #  define QT_FSTAT		::fstati64
38 #  define QT_LSEEK		::_lseeki64
39 #  define QT_TSTAT		::_tstati64
40 #else
41 #  define QT_STATBUF		struct stat		// non-ANSI defs
42 #  define QT_STATBUF4TSTAT	struct _stat		// non-ANSI defs
43 #  define QT_STAT		::stat
44 #  define QT_FSTAT		::fstat
45 #  define QT_LSEEK		::_lseek
46 #  define QT_TSTAT		::_tstat
47 #endif
48 
49 #define QT_STAT_REG		_S_IFREG
50 #define QT_STAT_DIR		_S_IFDIR
51 #define QT_STAT_MASK		_S_IFMT
52 
53 #if defined(_S_IFLNK)
54 #  define QT_STAT_LNK		_S_IFLNK
55 #endif
56 
57 #define QT_FILENO		_fileno
58 #define QT_OPEN			::open
59 #define QT_CLOSE		::_close
60 
61 #define QT_READ			::_read
62 #define QT_WRITE		::_write
63 #define QT_ACCESS		::_access
64 #define QT_GETCWD		::_getcwd
65 #define QT_CHDIR		::chdir
66 #define QT_MKDIR		::_mkdir
67 #define QT_RMDIR		::_rmdir
68 #define QT_OPEN_RDONLY		_O_RDONLY
69 #define QT_OPEN_WRONLY		_O_WRONLY
70 #define QT_OPEN_RDWR		_O_RDWR
71 #define QT_OPEN_CREAT		_O_CREAT
72 #define QT_OPEN_TRUNC		_O_TRUNC
73 #define QT_OPEN_APPEND		_O_APPEND
74 
75 #if defined(O_TEXT)
76 #  define QT_OPEN_TEXT		_O_TEXT
77 #  define QT_OPEN_BINARY	_O_BINARY
78 #endif
79 
80 #else
81 // Borland Builder 5
82 
83 #ifdef QT_LARGEFILE_SUPPORT
84 #  define QT_STATBUF		struct stati64		// non-ANSI defs
85 #  define QT_STATBUF4TSTAT	struct stati64		// non-ANSI defs
86 #  define QT_STAT		::stati64
87 #  define QT_FSTAT		::fstati64
88 #  define QT_LSEEK		::lseeki64
89 #  define QT_TSTAT		::tstati64
90 #else
91 #  define QT_STATBUF		struct stat		// non-ANSI defs
92 #  define QT_STATBUF4TSTAT	struct stat		// non-ANSI defs
93 #  define QT_STAT		::stat
94 #  define QT_FSTAT		::fstat
95 #  define QT_LSEEK		::lseek
96 #  define QT_TSTAT		::tstat
97 #endif
98 
99 #define QT_STAT_REG		S_IFREG
100 #define QT_STAT_DIR		S_IFDIR
101 #define QT_STAT_MASK		S_IFMT
102 
103 #if defined(S_IFLNK)
104 #  define QT_STAT_LNK		S_IFLNK
105 #endif
106 
107 #define QT_FILENO		fileno
108 #define QT_OPEN			::open
109 #define QT_CLOSE		::close
110 
111 #define QT_READ			::read
112 #define QT_WRITE		::write
113 #define QT_ACCESS		::access
114 
115 #if defined(Q_OS_OS2EMX)
116     // This is documented in the un*x to OS/2-EMX Porting FAQ:
117     // http://homepages.tu-darmstadt.de/~st002279/os2/porting.html
118 #  define QT_GETCWD		::_getcwd2
119 #  define QT_CHDIR		::_chdir2
120 #else
121 #  define QT_GETCWD		::getcwd
122 #  define QT_CHDIR		::chdir
123 #endif
124 
125 #define QT_MKDIR		::mkdir
126 #define QT_RMDIR		::rmdir
127 #define QT_OPEN_RDONLY		O_RDONLY
128 #define QT_OPEN_WRONLY		O_WRONLY
129 #define QT_OPEN_RDWR		O_RDWR
130 #define QT_OPEN_CREAT		O_CREAT
131 #define QT_OPEN_TRUNC		O_TRUNC
132 #define QT_OPEN_APPEND		O_APPEND
133 
134 #if defined(O_TEXT)
135 #  define QT_OPEN_TEXT		O_TEXT
136 #  define QT_OPEN_BINARY	O_BINARY
137 #endif
138 
139 #endif // __BORLANDC__ >= 0x550
140 
141 // Borland Builder 5 and 6
142 
143 #define QT_SIGNAL_ARGS		int
144 
145 #define QT_VSNPRINTF		::_vsnprintf
146 #define QT_SNPRINTF		::_snprintf
147 
148 # define F_OK	0
149 # define X_OK	1
150 # define W_OK	2
151 # define R_OK	4
152 
153 
154 #endif // QPLATFORMDEFS_H
155