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

Comparing ray/src/common/paths.c (file contents):
Revision 2.1 by schorsch, Sun Jun 8 12:01:52 2003 UTC vs.
Revision 2.2 by schorsch, Thu Jun 26 00:58:09 2003 UTC

# Line 21 | Line 21 | static const char *defaultpaths[] = DEFAULT_TEMPDIRS;
21   char *
22   temp_directory(char *s, size_t len)
23   {
24 <        static char td[PATH_MAX] = "\0"; /* remember */
24 >        static char td[PATH_MAX]; /* remember */
25          char * ts = NULL;
26          int i = 0;
27          
# Line 75 | Line 75 | append_filepath(char *s1, char *s2, size_t len)
75          char *s;
76  
77          siz = strlen(s1);
78 <        /* XXX siz > len is an error */
79 <        while (siz > 1 && ISDIRSEP(s1[siz-1])) {
80 <                s1[siz-1] = '\0';
81 <                siz--;
78 >        if (siz > 0) {
79 >                /* XXX siz > len is an error */
80 >                while (siz > 1 && ISDIRSEP(s1[siz-1])) {
81 >                        s1[siz-1] = '\0';
82 >                        siz--;
83 >                }
84 >                if (siz+1 <= len) {
85 >                        s1[siz] = DIRSEP;
86 >                        siz++;
87 >                }
88 >        } else if (len >= 2) { /* first path empty */
89 >                s1[0] = CURDIR;
90 >                s1[1] = DIRSEP;
91 >                siz = 2;
92 >        } else {
93 >                return NULL;
94          }
83        if (siz+1 <= len) {
84                s1[siz] = DIRSEP;
85                siz++;
86        }
95          while (ISDIRSEP(s2[0])) {
96                  s2++;
97          }
# Line 144 | Line 152 | temp_file(char *s, size_t len, char *templ)
152   #ifdef _WIN32
153          ts = mktemp(ts);
154          if (ts == NULL) return -1;
155 <        return fopen(ts, "r+b");
155 >        return fopen(ts, "r+b"); /* XXX des "b" need to be an option? */
156   #else
157          return mkstemp(ts);
158   #endif
159   }
160  
161  
162 < #ifdef MODULE_TEST
162 > #ifdef TEST_MODULE
163   int main()
164   {
165          static char p[PATH_MAX] = "\0";
166          char * pp, *qq = NULL;
167          pp = temp_directory(p, sizeof(p));
160
168          printf("%s\n", pp);
169 +
170          qq = temp_filename(pp, sizeof(p), "//something/else_XXXXXX");
171          printf("%s\n", qq);
172 +
173          qq = temp_filename(pp, sizeof(p), NULL);
174          printf("%s\n", qq);
175   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines