|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
-** $Id: ldblib.c,v 1.117 2009/11/24 12:05:44 roberto Exp roberto $
|
|
|
+** $Id: ldblib.c,v 1.118 2009/11/25 15:27:51 roberto Exp roberto $
|
|
|
** Interface from Lua to its debug API
|
|
|
** See Copyright Notice in lua.h
|
|
|
*/
|
|
@@ -73,6 +73,12 @@ static void settabsi (lua_State *L, const char *i, int v) {
|
|
|
}
|
|
|
|
|
|
|
|
|
+static void settabsb (lua_State *L, const char *i, int v) {
|
|
|
+ lua_pushboolean(L, v);
|
|
|
+ lua_setfield(L, -2, i);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
static lua_State *getthread (lua_State *L, int *arg) {
|
|
|
if (lua_isthread(L, 1)) {
|
|
|
*arg = 1;
|
|
@@ -127,16 +133,17 @@ static int db_getinfo (lua_State *L) {
|
|
|
}
|
|
|
if (strchr(options, 'l'))
|
|
|
settabsi(L, "currentline", ar.currentline);
|
|
|
- if (strchr(options, 'u'))
|
|
|
+ if (strchr(options, 'u')) {
|
|
|
settabsi(L, "nups", ar.nups);
|
|
|
+ settabsi(L, "nparams", ar.nparams);
|
|
|
+ settabsb(L, "isvararg", ar.isvararg);
|
|
|
+ }
|
|
|
if (strchr(options, 'n')) {
|
|
|
settabss(L, "name", ar.name);
|
|
|
settabss(L, "namewhat", ar.namewhat);
|
|
|
}
|
|
|
- if (strchr(options, 't')) {
|
|
|
- lua_pushboolean(L, ar.istailcall);
|
|
|
- lua_setfield(L, -2, "istailcall");
|
|
|
- }
|
|
|
+ if (strchr(options, 't'))
|
|
|
+ settabsb(L, "istailcall", ar.istailcall);
|
|
|
if (strchr(options, 'L'))
|
|
|
treatstackoption(L, L1, "activelines");
|
|
|
if (strchr(options, 'f'))
|