check for "config.rktd" before trying to read it for interactive

This commit is contained in:
Matthew Flatt 2016-07-26 10:47:19 -06:00
parent fc345ed249
commit b9a9fdaa3f

View File

@ -125,8 +125,7 @@ static Scheme_Object *get_init_filename(Scheme_Env *env,
f = _scheme_apply(build_path, 2, a);
if (SCHEME_PATHP(f)) {
char *filename;
filename = SCHEME_PATH_VAL(f);
filename = scheme_expand_filename(filename, -1, "startup", NULL, SCHEME_GUARD_FILE_EXISTS);
filename = scheme_expand_filename(SCHEME_PATH_VAL(f), -1, "startup", NULL, SCHEME_GUARD_FILE_EXISTS);
if(scheme_file_exists(filename)) {
p->error_buf = save;
return scheme_make_path(filename);
@ -139,6 +138,10 @@ static Scheme_Object *get_init_filename(Scheme_Env *env,
a[1] = scheme_make_path("config.rktd");
f = _scheme_apply(build_path, 2, a);
if (SCHEME_PATHP(f)) {
char *filename;
filename = scheme_expand_filename(SCHEME_PATH_VAL(f), -1, "startup", NULL,
SCHEME_GUARD_FILE_EXISTS | SCHEME_GUARD_FILE_READ);
if(scheme_file_exists(filename)) {
Scheme_Object * port;
port = scheme_open_input_file(SCHEME_PATH_VAL(f), "get-init-filename");
f = scheme_read(port);
@ -151,6 +154,7 @@ static Scheme_Object *get_init_filename(Scheme_Env *env,
}
}
}
}
/* Failed to load custom init file, load racket/interactive */
f = scheme_intern_symbol(default_init_module);