Subversion Repositories Kolibri OS

Rev

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
}