ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/src/common/platform.h
(Generate patch)

Comparing src/common/platform.h (file contents):
Revision 3.5 by schorsch, Mon Jun 30 14:59:11 2003 UTC vs.
Revision 3.17 by greg, Wed May 22 15:37:31 2024 UTC

# Line 4 | Line 4
4   */
5   #ifndef _RAD_PLATFORM_H_
6   #define _RAD_PLATFORM_H_
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
7  
8 < #ifdef _WIN32
8 > #if defined(_WIN32) || defined(_WIN64)
9  
10 +  #include <io.h>     /* _setmode() and stuff from unistd.h */
11    #include <stdio.h>
12 <  #define popen _popen
13 <  #define pclose _pclose
14 <  #include <fcntl.h>  /* _O_BINARY, _O_TEXT */
15 <  #include <io.h>     /* _setmode() */
16 <  #include <stdlib.h> /* _fmode */
12 >  typedef long off_t;
13 >  #undef fdopen
14 >  #define fdopen _fdopen
15 >  #undef read
16 >  #define read _read
17 >  #undef open
18 >  #define open _open
19 >  #undef close
20 >  #define close _close
21 >  #undef write
22 >  #define write _write
23 >  #undef ftruncate
24 >  #define ftruncate _chsize_s
25 >  #undef unlink
26 >  #define unlink _unlink
27 >  #undef fileno
28 >  #define fileno _fileno
29 >  #undef snprintf
30 >  #define snprintf _snprintf
31 >  #undef vsnprintf
32 >  #define vsnprintf _vsnprintf
33 >  /* XXX should we check first if size_t is 32 bit? */
34 >  #undef fseeko
35 >  #define fseeko _fseeki64
36 >  #undef lseek
37 >  #define lseek _lseek
38 >  #undef access
39 >  #define access _access
40 >  #undef mktemp
41 >  #define mktemp _mktemp
42 >  #define fpurge(s)
43  
44 +  #include <string.h>
45 +  #undef strcasecmp
46 +  #define strcasecmp _stricmp
47 +  #undef strncasecmp
48 +  #define strncasecmp _strnicmp
49 +  #undef strdup
50 +  #define strdup _strdup
51 +
52 +  #include <windows.h>
53 +  /* really weird defines by Microsoft in <resource.h>
54 +         generating lots of name collisions in Radiance. */
55 +  #if defined(rad1)
56 +    #undef rad1
57 +    #undef rad2
58 +    #undef rad3
59 +    #undef rad4
60 +    #undef rad5
61 +    #undef rad6
62 +    #undef rad7
63 +    #undef rad8
64 +    #undef rad9
65 +  #endif
66 +  #define sleep(s) Sleep((DWORD)((s)*1000))
67 +
68    #define NON_POSIX
21  #define RHAS_ACCESS
69  
70 <  #define SET_DEFAULT_BINARY() _fmode = _O_BINARY
71 <  #define SET_FILE_BINARY(fp) _setmode(fileno(fp),_O_BINARY)
70 >  #include <sys/types.h>
71 >  #include <sys/stat.h>
72 >  #define RHAS_STAT
73 >  #define S_IFREG _S_IFREG
74 >  #define W_IFDIR _S_IFDIR
75 >
76 >  #include <fcntl.h>  /* _O_BINARY, _O_TEXT */
77 >  #include <stdlib.h> /* _fmode */
78 >  #define SET_DEFAULT_BINARY() (_fmode = _O_BINARY)
79 >  #define SET_DEFAULT_TEXT() (_fmode = _O_TEXT)
80 >  #define SET_FILE_BINARY(fp) _setmode(_fileno(fp),_O_BINARY)
81 >  #define SET_FILE_TEXT(fp) _setmode(_fileno(fp),_O_TEXT)
82    #define SET_FD_BINARY(fd) _setmode(fd,_O_BINARY)
83 +  #define SET_FD_TEXT(fd) _setmode(fd,_O_TEXT)
84 +  #define putenv _putenv
85  
86 < #else /* _WIN32 */
86 > #else /* ! (_WIN32 || _WIN64) */
87  
88    #ifdef AMIGA
89      #define NON_POSIX
90    #else
91      /* assumedly posix systems */
92 <    #define RHAS_GETPWNAM
93 <    #define RHAS_ACCESS
92 >        #include <unistd.h>
93 >    #define RHAS_STAT
94      #define RHAS_FORK_EXEC
95    #endif
96  
97 +  #ifdef __linux__
98 +        #include <stdio_ext.h>
99 +        #define fpurge  __fpurge
100 +  #endif
101    /* everybody except Windows */
102  
103    /* NOPs */
104    #define SET_DEFAULT_BINARY()
105    #define SET_FILE_BINARY(fp)
106    #define SET_FD_BINARY(fd)
107 +  #define SET_DEFAULT_TEXT()
108 +  #define SET_FILE_TEXT(fp)
109 +  #define SET_FD_TEXT(fd)
110  
111 < #endif /* _WIN32 */
111 > #endif /* _WIN32 || _WIN64 */
112  
113 + #ifdef __cplusplus
114 + extern "C" {
115 + #endif
116 +
117 + #if defined(_WIN32) || defined(_WIN64)
118 +
119 + extern  int     usleep(__int64 usec);
120 +
121 + #endif /* _WIN32 || _WIN64 */
122  
123   #ifdef __cplusplus
124   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines