Rev 5191 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5191 | Rev 5217 | ||
---|---|---|---|
Line 87... | Line 87... | ||
87 | static const char vartmp[] = |
87 | static const char vartmp[] = |
88 | { DIR_SEPARATOR, 'v', 'a', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 }; |
88 | { DIR_SEPARATOR, 'v', 'a', 'r', DIR_SEPARATOR, 't', 'm', 'p', 0 }; |
Line 89... | Line 89... | ||
89 | 89 | ||
Line 90... | Line 90... | ||
90 | #endif |
90 | #endif |
Line 91... | Line 91... | ||
91 | 91 | ||
Line 92... | Line 92... | ||
92 | static char *memoized_tmpdir; |
92 | //static char *memoized_tmpdir; |
Line 103... | Line 103... | ||
103 | */ |
103 | */ |
Line 104... | Line 104... | ||
104 | 104 | ||
105 | char * |
105 | char * |
106 | choose_tmpdir (void) |
106 | choose_tmpdir (void) |
107 | { |
- | |
108 | if (!memoized_tmpdir) |
- | |
109 | { |
- | |
110 | #if !defined(_WIN32) || defined(__CYGWIN__) |
- | |
111 | const char *base = 0; |
- | |
112 | char *tmpdir; |
- | |
113 | unsigned int len; |
- | |
114 | - | ||
115 | #ifdef VMS |
- | |
116 | /* Try VMS standard temp logical. */ |
- | |
117 | base = try_dir ("/sys$scratch", base); |
- | |
118 | #else |
- | |
119 | base = try_dir (getenv ("TMPDIR"), base); |
- | |
120 | base = try_dir (getenv ("TMP"), base); |
- | |
121 | base = try_dir (getenv ("TEMP"), base); |
- | |
122 | #endif |
- | |
123 | - | ||
124 | #ifdef P_tmpdir |
- | |
125 | /* We really want a directory name here as if concatenated with say \dir |
- | |
126 | we do not end up with a double \\ which defines an UNC path. */ |
- | |
127 | if (strcmp (P_tmpdir, "\\") == 0) |
- | |
128 | base = try_dir ("\\.", base); |
- | |
129 | else |
- | |
130 | base = try_dir (P_tmpdir, base); |
- | |
131 | #endif |
- | |
132 | - | ||
133 | /* Try /var/tmp, /usr/tmp, then /tmp. */ |
- | |
134 | base = try_dir (vartmp, base); |
- | |
135 | base = try_dir (usrtmp, base); |
- | |
136 | base = try_dir (tmp, base); |
- | |
137 | - | ||
138 | /* If all else fails, use the current directory! */ |
- | |
139 | if (base == 0) |
- | |
140 | base = "."; |
- | |
141 | /* Append DIR_SEPARATOR to the directory we've chosen |
- | |
142 | and return it. */ |
- | |
143 | len = strlen (base); |
- | |
144 | tmpdir = XNEWVEC (char, len + 2); |
- | |
145 | strcpy (tmpdir, base); |
- | |
146 | tmpdir[len] = DIR_SEPARATOR; |
- | |
147 | tmpdir[len+1] = '\0'; |
- | |
148 | memoized_tmpdir = tmpdir; |
- | |
149 | #else /* defined(_WIN32) && !defined(__CYGWIN__) */ |
- | |
150 | DWORD len; |
- | |
151 | - | ||
152 | /* Figure out how much space we need. */ |
- | |
153 | len = GetTempPath(0, NULL); |
- | |
154 | if (len) |
- | |
155 | { |
- | |
156 | memoized_tmpdir = XNEWVEC (char, len); |
- | |
157 | if (!GetTempPath(len, memoized_tmpdir)) |
- | |
158 | { |
- | |
159 | XDELETEVEC (memoized_tmpdir); |
- | |
160 | memoized_tmpdir = NULL; |
- | |
161 | } |
- | |
162 | } |
- | |
163 | if (!memoized_tmpdir) |
- | |
164 | /* If all else fails, use the current directory. */ |
- | |
165 | memoized_tmpdir = xstrdup (".\\"); |
- | |
166 | #endif /* defined(_WIN32) && !defined(__CYGWIN__) */ |
- | |
167 | } |
- | |
168 | 107 | { |
|
169 | return memoized_tmpdir; |
108 | return "/tmp0/1/"; |
Line 170... | Line 109... | ||
170 | } |
109 | } |
Line 171... | Line 110... | ||
171 | 110 |