diff options
author | Mike Pall <mike> | 2012-07-16 22:47:01 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-07-16 22:47:01 +0200 |
commit | 63bb052bbef88821cc7b24a68a680dc821bc0fb2 (patch) | |
tree | 39fd0a1369e8448383d69231b31272f6e76d2c6b /src/lib_package.c | |
parent | bf2d4acf005e301ee593d9b73402967a339aa220 (diff) | |
download | luajit2-63bb052bbef88821cc7b24a68a680dc821bc0fb2.tar.gz |
From Lua 5.2: Add -E command line option (ignore env vars).
Diffstat (limited to 'src/lib_package.c')
-rw-r--r-- | src/lib_package.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib_package.c b/src/lib_package.c index 7435f6dc..c04253aa 100644 --- a/src/lib_package.c +++ b/src/lib_package.c @@ -517,7 +517,7 @@ static int lj_cf_package_seeall(lua_State *L) #define AUXMARK "\1" static void setpath(lua_State *L, const char *fieldname, const char *envname, - const char *def) + const char *def, int noenv) { #if LJ_TARGET_CONSOLE const char *path = NULL; @@ -525,7 +525,7 @@ static void setpath(lua_State *L, const char *fieldname, const char *envname, #else const char *path = getenv(envname); #endif - if (path == NULL) { + if (path == NULL || noenv) { lua_pushstring(L, def); } else { path = luaL_gsub(L, path, LUA_PATHSEP LUA_PATHSEP, @@ -562,6 +562,7 @@ static const lua_CFunction package_loaders[] = LUALIB_API int luaopen_package(lua_State *L) { int i; + int noenv; luaL_newmetatable(L, "_LOADLIB"); lj_lib_pushcf(L, lj_cf_package_unloadlib, 1); lua_setfield(L, -2, "__gc"); @@ -574,8 +575,11 @@ LUALIB_API int luaopen_package(lua_State *L) lua_rawseti(L, -2, i+1); } lua_setfield(L, -2, "loaders"); - setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT); - setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT); + lua_getfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); + noenv = lua_toboolean(L, -1); + lua_pop(L, 1); + setpath(L, "path", LUA_PATH, LUA_PATH_DEFAULT, noenv); + setpath(L, "cpath", LUA_CPATH, LUA_CPATH_DEFAULT, noenv); lua_pushliteral(L, LUA_PATH_CONFIG); lua_setfield(L, -2, "config"); luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 16); |