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

Comparing ray/src/common/paths.h (file contents):
Revision 2.15 by greg, Fri Jun 27 06:53:21 2003 UTC vs.
Revision 2.17 by schorsch, Thu Jul 3 22:41:44 2003 UTC

# Line 8 | Line 8
8   extern "C" {
9   #endif
10  
11 + #include <stdio.h>
12   #include <stdlib.h>
13   #include <string.h>
14 + #include <fcntl.h>
15 + #include <sys/types.h>
16 + #include <sys/stat.h>
17 +
18   #ifdef _WIN32
19    #include <io.h>
15 #else /* _WIN32 */
16  #include <unistd.h>
17  #include <sys/param.h>
18 #endif /* _WIN32 */
20  
20 #ifdef _WIN32
21
21    #define access _access
22    #define PATH_MAX _MAX_PATH
23    #define DIRSEP                '/'
# Line 32 | Line 31 | extern "C" {
31    #define CASEDIRSEP    case '/': case '\\'
32    #define PATHSEP               ';'
33    #define CURDIR                '.'
35  #define MAXPATH               512 /* XXX obsoleted by posix PATH_MAX */
34    #define DEFAULT_TEMPDIRS {"C:/TMP", "C:/TEMP", ".", NULL}
35    #define TEMPLATE      "rtXXXXXX"
36    #define TEMPLEN               8
# Line 47 | Line 45 | extern "C" {
45      #define  W_OK 02
46      #define  R_OK 04
47    #endif
48 +  /* to make the permissions user specific we'd need to use CreateFile() */
49 +  #ifndef S_IRUSR
50 +    #define S_IRUSR _S_IREAD
51 +    #define S_IWUSR _S_IWRITE
52 +  #endif
53   extern char  *fixargv0();
54  
55 < #else
56 <  #ifndef PATH_MAX /* doesn't implement posix? */
57 <    #define PATH_MAX 512 /* quite conservative (I think...) */
55 > #else /* everything but Windows */
56 >  #include <unistd.h>
57 >  #include <sys/param.h>
58 >
59 >  #define RMAX_PATH_MAX 4096 /* our own maximum */
60 >  #ifndef PATH_MAX
61 >    #define PATH_MAX 512
62 >  #elif PATH_MAX > RMAX_PATH_MAX /* the OS is exaggerating */
63 >    #undef PATH_MAX
64 >    #define PATH_MAX RMAX_PATH_MAX
65    #endif
66  
67    #ifdef AMIGA
# Line 60 | Line 70 | extern char  *fixargv0();
70      #define ISABS(s) ((s)!=NULL && (ISDIRSEP(s[0])))
71      #define PATHSEP             ';'
72          #define CURDIR          '.'
63    #define MAXPATH             128
73      #define DEFAULT_TEMPDIRS {"/var/tmp", "/usr/tmp", "/tmp", ".", NULL}
74      #define TEMPLATE    "/tmp/rtXXXXXX"
75      #define TEMPLEN             13
# Line 72 | Line 81 | extern char  *fixargv0();
81  
82    #else
83  
84 +    /* posix */
85 +
86 +        /* this is defined as _PATH_DEVNULL in /usr/include/paths.h on Linux */
87 +        #define NULL_DEVICE     "/dev/null"
88      #define DIRSEP              '/'
89      #define ISABS(s) ((s)!=NULL && (ISDIRSEP(s[0])))
90      #define PATHSEP             ':'
91          #define CURDIR          '.'
79    #define MAXPATH             256
92      #define DEFAULT_TEMPDIRS {"/var/tmp", "/usr/tmp", "/tmp", ".", NULL}
93      #define TEMPLATE    "/usr/tmp/rtXXXXXX"
94      #define TEMPLEN             17
# Line 96 | Line 108 | extern char  *fixargv0();
108    #define CASEDIRSEP    case DIRSEP
109   #endif
110  
99 extern char  *mktemp(), *getenv();
111  
101 #ifdef BSD
102 extern char  *getwd();
103 #else
104 extern char  *getcwd();
105 #define  getwd(p)       getcwd(p, sizeof(p))
106 #endif
107
108
112   /* Find a writeable directory for temporary files */
113   /* If s is NULL, we return a static string */
114   extern char *temp_directory(char *s, size_t len);
# Line 120 | Line 123 | extern char *temp_filename(char *s, size_t len, char *
123   /* Same as above, but also open the file and return the descriptor */
124   /* This one is supposed to protect against race conditions on unix */
125   /* WARNING: On Windows, there's no protection against race conditions */
126 < extern int temp_file(char *s, size_t len, char *templ);
126 > extern int temp_fd(char *s, size_t len, char *templ);
127 >
128 > /* Same as above, but return a file pointer instead of a descriptor */
129 > extern FILE *temp_fp(char *s, size_t len, char *templ);
130  
131   /* Concatenate two strings, leaving exactly one DIRSEP in between */
132   extern char *append_filepath(char *s1, char *s2, size_t len);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines