ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/platform.h
Revision: 3.14
Committed: Thu Aug 18 17:57:57 2016 UTC (7 years, 8 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 3.13: +8 -2 lines
Log Message:
Changed to using SET_FILE_BINARY() where possible

File Contents

# Content
1 /* RCSid $Id: platform.h,v 3.13 2016/08/05 00:12:46 greg Exp $ */
2 /*
3 * platform.h - header file for platform specific definitions
4 */
5 #ifndef _RAD_PLATFORM_H_
6 #define _RAD_PLATFORM_H_
7
8 #if defined(_WIN32) || defined(_WIN64)
9
10 #include <io.h> /* _setmode() and stuff from unistd.h */
11 #include <stdio.h>
12 typedef long off_t;
13 #define fdopen _fdopen
14 #define read _read
15 #define open _open
16 #define close _close
17 #define write _write
18 #define ftruncate _chsize_s
19 #define unlink _unlink
20 #define fileno _fileno
21 #define snprintf _snprintf
22 #define vsnprintf _vsnprintf
23 /* XXX should we check first if size_t is 32 bit? */
24 #define fseeko _fseeki64
25 #define lseek _lseek
26 #define access _access
27 #define mktemp _mktemp
28
29 #include <string.h>
30 #define strcasecmp _stricmp
31 #define strncasecmp _strnicmp
32 #define strdup _strdup
33
34 #include <windows.h>
35 /* really weird defines by Microsoft in <resource.h>
36 generating lots of name collisions in Radiance. */
37 #if defined(rad1)
38 #undef rad1
39 #undef rad2
40 #undef rad3
41 #undef rad4
42 #undef rad5
43 #undef rad6
44 #undef rad7
45 #undef rad8
46 #undef rad9
47 #endif
48 #define sleep(s) Sleep((DWORD)((s)*1000))
49
50 #define NON_POSIX
51
52 #include <sys/types.h>
53 #include <sys/stat.h>
54 #define RHAS_STAT
55 #define S_IFREG _S_IFREG
56 #define W_IFDIR _S_IFDIR
57
58 #include <fcntl.h> /* _O_BINARY, _O_TEXT */
59 #include <stdlib.h> /* _fmode */
60 #define SET_DEFAULT_BINARY() (_fmode = _O_BINARY)
61 #define SET_DEFAULT_TEXT() (_fmode = _O_TEXT)
62 #define SET_FILE_BINARY(fp) _setmode(_fileno(fp),_O_BINARY)
63 #define SET_FILE_TEXT(fp) _setmode(_fileno(fp),_O_TEXT)
64 #define SET_FD_BINARY(fd) _setmode(fd,_O_BINARY)
65 #define SET_FD_TEXT(fd) _setmode(fd,_O_TEXT)
66 #define putenv _putenv
67
68 #else /* _WIN32 || _WIN64 */
69
70 #ifdef AMIGA
71 #define NON_POSIX
72 #else
73 /* assumedly posix systems */
74 #include <unistd.h>
75 #define RHAS_STAT
76 #define RHAS_FORK_EXEC
77 #endif
78
79 /* everybody except Windows */
80
81 /* NOPs */
82 #define SET_DEFAULT_BINARY()
83 #define SET_FILE_BINARY(fp)
84 #define SET_FD_BINARY(fd)
85 #define SET_DEFAULT_TEXT()
86 #define SET_FILE_TEXT(fp)
87 #define SET_FD_TEXT(fd)
88
89 #endif /* _WIN32 || _WIN64 */
90
91 #ifdef __cplusplus
92 extern "C" {
93 #endif
94
95 /* nothing to protect yet */
96
97 #ifdef __cplusplus
98 }
99 #endif
100 #endif /* _RAD_PLATFORM_H_ */
101