[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: Q: accessing lua table from "c"
- From: "Danilo Tuler de Oliveira" <tuler@...>
- Date: Fri, 14 Jun 2002 12:06:00 -0000
t = {f="f1", s="s1"} -- t is a table
t = {{f="f1", s="s1"}, {f="f2", s="s2"}} -- t is a vector of tables
t = {{f="f1", s="s1"}} -- t is a vector with a single
table
If you want to support the #2 and #3 here is a code snippet.
const char *LuaGetTable(char *item)
{
const char *s = NULL;
lua_pushstring(S, item);
lua_gettable(S, -2);
if (lua_isstring(S, -1))
{
s = lua_tostring(S, -1);
}
lua_pop(S, 1);
return s;
}
.
.
.
lua_getglobal(S, "t");
if (lua_istable(S, -1))
{
int i;
int n = lua_getn(S, -1);
for (i = 1; i <= n; i++)
{
lua_rawgeti(S, -1, i);
printf("t.f = %s\n", LuaGetTable("f"));
printf("t.s = %s\n\n", LuaGetTable("s"));
lua_pop(S, 1);
}
}
-- Danilo