diff --git a/eval.c b/eval.c index 0eab33aa..22f13c1a 100644 --- a/eval.c +++ b/eval.c @@ -2530,9 +2530,7 @@ sexp sexp_add_module_directory (sexp ctx, sexp dir, sexp appendp) { return SEXP_VOID; } -sexp sexp_load_standard_env (sexp ctx, sexp e, sexp version) { - sexp_gc_var3(op, tmp, sym); - sexp_gc_preserve3(ctx, op, tmp, sym); +sexp sexp_load_standard_parameters (sexp ctx, sexp e) { /* add io port and interaction env parameters */ sexp_env_define(ctx, e, sexp_global(ctx, SEXP_G_CUR_IN_SYMBOL), sexp_make_input_port(ctx, stdin, SEXP_FALSE)); @@ -2541,6 +2539,12 @@ sexp sexp_load_standard_env (sexp ctx, sexp e, sexp version) { sexp_env_define(ctx, e, sexp_global(ctx, SEXP_G_CUR_ERR_SYMBOL), sexp_make_output_port(ctx, stderr, SEXP_FALSE)); sexp_env_define(ctx, e, sexp_global(ctx, SEXP_G_INTERACTION_ENV_SYMBOL), e); +} + +sexp sexp_load_standard_env (sexp ctx, sexp e, sexp version) { + sexp_gc_var3(op, tmp, sym); + sexp_gc_preserve3(ctx, op, tmp, sym); + sexp_load_standard_parameters(ctx, e); #if SEXP_USE_DL sexp_env_define(ctx, e, sexp_intern(ctx, "*shared-object-extension*"), sexp_c_string(ctx, sexp_so_extension, -1)); diff --git a/include/chibi/eval.h b/include/chibi/eval.h index 8ba7b442..297f2b70 100644 --- a/include/chibi/eval.h +++ b/include/chibi/eval.h @@ -133,6 +133,7 @@ SEXP_API sexp sexp_make_env (sexp context); SEXP_API sexp sexp_make_null_env (sexp context, sexp version); SEXP_API sexp sexp_make_primitive_env (sexp context, sexp version); SEXP_API sexp sexp_make_standard_env (sexp context, sexp version); +SEXP_API sexp sexp_load_standard_parameters (sexp context, sexp env); SEXP_API sexp sexp_load_standard_env (sexp context, sexp env, sexp version); SEXP_API sexp sexp_find_module_file (sexp ctx, char *file); SEXP_API sexp sexp_load_module_file (sexp ctx, char *file, sexp env); diff --git a/main.c b/main.c index 85ee9ba1..55fa6dba 100644 --- a/main.c +++ b/main.c @@ -113,6 +113,7 @@ void run_main (int argc, char **argv) { free(impmod); break; case 'q': + sexp_load_standard_parameters(ctx, env); init_loaded = 1; break; case 'A':