diff --git a/Makefile b/Makefile index f61249c1..40e598b9 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ CHIBI_DOC_DEPENDENCIES ?= $(CHIBI_DEPENDENCIES) tools/chibi-doc GENSTATIC ?= ./tools/chibi-genstatic -CHIBI ?= LD_LIBRARY_PATH=".:$(LD_LIBRARY_PATH)" DYLD_LIBRARY_PATH=".:$(DYLD_LIBRARY_PATH)" CHIBI_MODULE_PATH=lib ./chibi-scheme$(EXE) +CHIBI ?= LD_LIBRARY_PATH=".:$(LD_LIBRARY_PATH)" DYLD_LIBRARY_PATH=".:$(DYLD_LIBRARY_PATH)" CHIBI_IGNORE_SYSTEM_PATH=1 CHIBI_MODULE_PATH=lib ./chibi-scheme$(EXE) CHIBI_DEPENDENCIES = ./chibi-scheme$(EXE) SNOW_CHIBI ?= tools/snow-chibi diff --git a/eval.c b/eval.c index 3d694914..84bc0473 100644 --- a/eval.c +++ b/eval.c @@ -486,13 +486,16 @@ static void sexp_init_eval_context_bytecodes (sexp ctx) { #endif void sexp_init_eval_context_globals (sexp ctx) { + const char* no_sys_path; const char* user_path; ctx = sexp_make_child_context(ctx, NULL); #if ! SEXP_USE_NATIVE_X86 sexp_init_eval_context_bytecodes(ctx); #endif sexp_global(ctx, SEXP_G_MODULE_PATH) = SEXP_NULL; - sexp_add_path(ctx, sexp_default_module_path); + no_sys_path = getenv(SEXP_NO_SYSTEM_PATH_VAR); + if (!no_sys_path || strcmp(no_sys_path, "0")==0) + sexp_add_path(ctx, sexp_default_module_path); user_path = getenv(SEXP_MODULE_PATH_VAR); if (!user_path) user_path = sexp_default_user_module_path; sexp_add_path(ctx, user_path); diff --git a/include/chibi/sexp.h b/include/chibi/sexp.h index 151427f1..3f673a32 100644 --- a/include/chibi/sexp.h +++ b/include/chibi/sexp.h @@ -13,6 +13,7 @@ extern "C" { #endif #define SEXP_MODULE_PATH_VAR "CHIBI_MODULE_PATH" +#define SEXP_NO_SYSTEM_PATH_VAR "CHIBI_IGNORE_SYSTEM_PATH" #include "chibi/features.h" #include "chibi/install.h"