From 9737c1716c740f15b5336024e3c942230b1d0590 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Thu, 17 Apr 2014 15:05:57 +1000 Subject: Give more info in dumpStack(). --- ClientHamr/GuiLua/GuiLua.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'ClientHamr') diff --git a/ClientHamr/GuiLua/GuiLua.c b/ClientHamr/GuiLua/GuiLua.c index 252ebb1..3c068c7 100644 --- a/ClientHamr/GuiLua/GuiLua.c +++ b/ClientHamr/GuiLua/GuiLua.c @@ -155,12 +155,24 @@ void dumpStack(lua_State *L, int i) { case LUA_TNONE : printf("Stack %d is empty\n", i); break; case LUA_TNIL : printf("Stack %d is a nil\n", i); break; - case LUA_TBOOLEAN : printf("Stack %d is a boolean\n", i); break; - case LUA_TNUMBER : printf("Stack %d is a number\n", i); break; + case LUA_TBOOLEAN : printf("Stack %d is a boolean - %d\n", i, lua_toboolean(L, i)); break; + case LUA_TNUMBER : printf("Stack %d is a number\n - %f", i, lua_tonumber(L, i)); break; case LUA_TSTRING : printf("Stack %d is a string - %s\n", i, lua_tostring(L, i)); break; case LUA_TFUNCTION : printf("Stack %d is a function\n", i); break; case LUA_TTHREAD : printf("Stack %d is a thread\n", i); break; - case LUA_TTABLE : printf("Stack %d is a table\n", i); break; + case LUA_TTABLE : + { + int j; + + printf("Stack %d is a table", i); + lua_getfield(L, i, "_NAME"); + j = lua_gettop(L); + if (lua_isstring(L, j)) + printf(" - %s", lua_tostring(L, j)); + lua_pop(L, 1); + printf("\n"); + break; + } case LUA_TUSERDATA : printf("Stack %d is a userdata\n", i); break; case LUA_TLIGHTUSERDATA : printf("Stack %d is a light userdata\n", i); break; default : printf("Stack %d is unknown\n", i); break; -- cgit v1.1