aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2005-10-03 11:36:45 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2005-10-03 11:36:45 -0300
commit5fc92cce12348226f229dbc9d69fae8fb4cac9de (patch)
tree8468c519ddda92c69e6165ffcf10610a0af6f9a6
parent6dd0c6ccbcddc875933cab872008f57cbbbf997b (diff)
downloadlua-5fc92cce12348226f229dbc9d69fae8fb4cac9de.tar.gz
lua-5fc92cce12348226f229dbc9d69fae8fb4cac9de.tar.bz2
lua-5fc92cce12348226f229dbc9d69fae8fb4cac9de.zip
registry._LOADED created "on demand" and baselib created as module _G
-rw-r--r--lbaselib.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/lbaselib.c b/lbaselib.c
index 219180b6..4c43b827 100644
--- a/lbaselib.c
+++ b/lbaselib.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lbaselib.c,v 1.182 2005/08/26 17:36:32 roberto Exp roberto $ 2** $Id: lbaselib.c,v 1.183 2005/09/16 18:22:48 roberto Exp roberto $
3** Basic library 3** Basic library
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -561,7 +561,7 @@ static int luaB_costatus (lua_State *L) {
561 lua_pushliteral(L, "dead"); 561 lua_pushliteral(L, "dead");
562 else 562 else
563 lua_pushliteral(L, "suspended"); /* initial state */ 563 lua_pushliteral(L, "suspended"); /* initial state */
564 break; 564 break;
565 } 565 }
566 default: /* some error occured */ 566 default: /* some error occured */
567 lua_pushliteral(L, "dead"); 567 lua_pushliteral(L, "dead");
@@ -602,8 +602,11 @@ static void auxopen (lua_State *L, const char *name,
602 602
603 603
604static void base_open (lua_State *L) { 604static void base_open (lua_State *L) {
605 /* set global _G */
605 lua_pushvalue(L, LUA_GLOBALSINDEX); 606 lua_pushvalue(L, LUA_GLOBALSINDEX);
606 luaL_register(L, NULL, base_funcs); /* open lib into global table */ 607 lua_setglobal(L, "_G");
608 /* open lib into global table */
609 luaL_register(L, "_G", base_funcs);
607 lua_pushliteral(L, LUA_VERSION); 610 lua_pushliteral(L, LUA_VERSION);
608 lua_setglobal(L, "_VERSION"); /* set global _VERSION */ 611 lua_setglobal(L, "_VERSION"); /* set global _VERSION */
609 /* `ipairs' and `pairs' need auxiliary functions as upvalues */ 612 /* `ipairs' and `pairs' need auxiliary functions as upvalues */
@@ -617,12 +620,6 @@ static void base_open (lua_State *L) {
617 lua_setfield(L, -2, "__mode"); /* metatable(w).__mode = "kv" */ 620 lua_setfield(L, -2, "__mode"); /* metatable(w).__mode = "kv" */
618 lua_pushcclosure(L, luaB_newproxy, 1); 621 lua_pushcclosure(L, luaB_newproxy, 1);
619 lua_setglobal(L, "newproxy"); /* set global `newproxy' */ 622 lua_setglobal(L, "newproxy"); /* set global `newproxy' */
620 /* create register._LOADED to track loaded modules */
621 lua_newtable(L);
622 lua_setfield(L, LUA_REGISTRYINDEX, "_LOADED");
623 /* set global _G */
624 lua_pushvalue(L, LUA_GLOBALSINDEX);
625 lua_setglobal(L, "_G");
626} 623}
627 624
628 625