diff options
Diffstat (limited to 'lauxlib.c')
-rw-r--r-- | lauxlib.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lauxlib.c,v 1.226 2010/11/10 17:38:10 roberto Exp roberto $ | 2 | ** $Id: lauxlib.c,v 1.227 2010/11/10 18:05:36 roberto Exp roberto $ |
3 | ** Auxiliary functions for building Lua libraries | 3 | ** Auxiliary functions for building Lua libraries |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -795,15 +795,16 @@ LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { | |||
795 | ** ensure that stack[idx][fname] has a table and push that table | 795 | ** ensure that stack[idx][fname] has a table and push that table |
796 | ** into the stack | 796 | ** into the stack |
797 | */ | 797 | */ |
798 | LUALIB_API void luaL_findtable (lua_State *L, int idx, const char *fname) { | 798 | LUALIB_API int luaL_findtable (lua_State *L, int idx, const char *fname) { |
799 | lua_getfield(L, idx, fname); | 799 | lua_getfield(L, idx, fname); |
800 | if (lua_istable(L, -1)) return; /* table already there */ | 800 | if (lua_istable(L, -1)) return 1; /* table already there */ |
801 | else { | 801 | else { |
802 | idx = lua_absindex(L, idx); | 802 | idx = lua_absindex(L, idx); |
803 | lua_pop(L, 1); /* remove previous result */ | 803 | lua_pop(L, 1); /* remove previous result */ |
804 | lua_newtable(L); | 804 | lua_newtable(L); |
805 | lua_pushvalue(L, -1); /* copy to be left at top */ | 805 | lua_pushvalue(L, -1); /* copy to be left at top */ |
806 | lua_setfield(L, idx, fname); /* assign new table to field */ | 806 | lua_setfield(L, idx, fname); /* assign new table to field */ |
807 | return 0; /* false, because did not find table there */ | ||
807 | } | 808 | } |
808 | } | 809 | } |
809 | 810 | ||