Rev 9837 | Rev 9952 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9837 | Rev 9840 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | #error MAX_PATH < PATH_MAX. You should use MAX_PATH. |
38 | #error MAX_PATH < PATH_MAX. You should use MAX_PATH. |
39 | #endif |
39 | #endif |
40 | #endif |
40 | #endif |
Line 41... | Line 41... | ||
41 | 41 | ||
42 | #ifdef _KOLIBRI |
42 | #ifdef _KOLIBRI |
- | 43 | char* kos_dgen_userdir = "/tmp0/1"; |
|
43 | char* dgen_conf_dir = "/tmp0/1"; |
44 | |
Line 44... | Line 45... | ||
44 | #endif |
45 | #endif |
45 | 46 | ||
46 | static const char *fopen_mode(unsigned int mode) |
47 | static const char *fopen_mode(unsigned int mode) |
Line 179... | Line 180... | ||
179 | if ((path = malloc(sz)) == NULL) |
180 | if ((path = malloc(sz)) == NULL) |
180 | return NULL; |
181 | return NULL; |
181 | } |
182 | } |
182 | #ifndef __MINGW32__ |
183 | #ifndef __MINGW32__ |
183 | #ifdef _KOLIBRI |
184 | #ifdef _KOLIBRI |
184 | strncpy(path, dgen_conf_dir, sz_dir); |
185 | strncpy(path, kos_dgen_userdir, sz_dir); |
185 | #else |
186 | #else |
186 | strncpy(path, pwd->pw_dir, sz_dir); |
187 | strncpy(path, pwd->pw_dir, sz_dir); |
187 | #endif |
188 | #endif |
188 | #else |
189 | #else |
189 | if (SHGetFolderPath(NULL, (CSIDL_PROFILE | CSIDL_FLAG_CREATE), |
190 | if (SHGetFolderPath(NULL, (CSIDL_PROFILE | CSIDL_FLAG_CREATE), |
Line 229... | Line 230... | ||
229 | struct passwd *pwd = getpwuid(geteuid()); |
230 | struct passwd *pwd = getpwuid(geteuid()); |
230 | if ((pwd == NULL) || (pwd->pw_dir == NULL)) |
231 | if ((pwd == NULL) || (pwd->pw_dir == NULL)) |
231 | return NULL; |
232 | return NULL; |
232 | sz_dir = strlen(pwd->pw_dir); |
233 | sz_dir = strlen(pwd->pw_dir); |
233 | #else |
234 | #else |
234 | sz_dir = strlen(dgen_conf_dir); |
235 | sz_dir = strlen(kos_dgen_userdir); |
235 | #endif |
236 | #endif |
236 | #endif |
237 | #endif |
Line 237... | Line 238... | ||
237 | 238 | ||
238 | if (sub != NULL) |
239 | if (sub != NULL) |
Line 261... | Line 262... | ||
261 | } |
262 | } |
262 | #ifndef __MINGW32__ |
263 | #ifndef __MINGW32__ |
263 | #ifndef _KOLIBRI |
264 | #ifndef _KOLIBRI |
264 | strncpy(path, pwd->pw_dir, sz_dir); |
265 | strncpy(path, pwd->pw_dir, sz_dir); |
265 | #else |
266 | #else |
266 | strncpy(path, dgen_conf_dir, sz_dir); |
267 | strncpy(path, kos_dgen_userdir, sz_dir); |
267 | #endif |
268 | #endif |
268 | #else |
269 | #else |
269 | if (SHGetFolderPath(NULL, (CSIDL_APPDATA | CSIDL_FLAG_CREATE), |
270 | if (SHGetFolderPath(NULL, (CSIDL_APPDATA | CSIDL_FLAG_CREATE), |
270 | 0, 0, path) != S_OK) { |
271 | 0, 0, path) != S_OK) { |
271 | if (buf == NULL) |
272 | if (buf == NULL) |
Line 350... | Line 351... | ||
350 | else { |
351 | else { |
351 | if ((path = strdup(relative)) == NULL) |
352 | if ((path = strdup(relative)) == NULL) |
352 | goto error; |
353 | goto error; |
353 | size = strlen(path); |
354 | size = strlen(path); |
354 | } |
355 | } |
355 | printf("HOME=%s\n", path); |
356 | #ifndef KOLIBRI |
356 | if ((mode & (DGEN_WRITE | DGEN_APPEND)) && (path != NULL)) |
357 | if ((mode & (DGEN_WRITE | DGEN_APPEND)) && (path != NULL)) |
357 | mkdir(path, 0777); /* XXX make that recursive */ |
358 | mkdir(path, 0777); /* XXX make that recursive */ |
- | 359 | #else |
|
- | 360 | mkdir(path, 0777); |
|
- | 361 | #endif |
|
358 | file_size = strlen(file); |
362 | file_size = strlen(file); |
359 | if ((tmp = realloc(path, (size + !!size + file_size + 1))) == NULL) |
363 | if ((tmp = realloc(path, (size + !!size + file_size + 1))) == NULL) |
360 | goto error; |
364 | goto error; |
361 | path = tmp; |
365 | path = tmp; |
362 | if (size) |
366 | if (size) |
Line 372... | Line 376... | ||
372 | e = errno; |
376 | e = errno; |
373 | free(path); |
377 | free(path); |
374 | errno = e; |
378 | errno = e; |
375 | return f; |
379 | return f; |
376 | error: |
380 | error: |
377 | puts("ERROR"); |
- | |
378 | free(path); |
381 | free(path); |
379 | errno = EACCES; |
382 | errno = EACCES; |
380 | return NULL; |
383 | return NULL; |
381 | } |
384 | } |