summaryrefslogtreecommitdiff
path: root/ldblib.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldblib.c')
-rw-r--r--ldblib.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/ldblib.c b/ldblib.c
index da0a90f5..5ef7d428 100644
--- a/ldblib.c
+++ b/ldblib.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldblib.c,v 1.51 2002/05/07 17:36:56 roberto Exp roberto $ 2** $Id: ldblib.c,v 1.52 2002/05/15 18:57:44 roberto Exp roberto $
3** Interface from Lua to its debug API 3** Interface from Lua to its debug API
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -41,7 +41,7 @@ static int getinfo (lua_State *L) {
41 } 41 }
42 } 42 }
43 else if (lua_isfunction(L, 1)) { 43 else if (lua_isfunction(L, 1)) {
44 luaL_vstr(L, ">%s", options); 44 lua_pushfstring(L, ">%s", options);
45 options = lua_tostring(L, -1); 45 options = lua_tostring(L, -1);
46 lua_pushvalue(L, 1); 46 lua_pushvalue(L, 1);
47 } 47 }
@@ -207,23 +207,24 @@ static int errorfb (lua_State *L) {
207 sprintf(buff, "%4d- ", level-1); 207 sprintf(buff, "%4d- ", level-1);
208 lua_pushstring(L, buff); 208 lua_pushstring(L, buff);
209 lua_getinfo(L, "Snl", &ar); 209 lua_getinfo(L, "Snl", &ar);
210 luaL_vstr(L, "%s:", ar.short_src); 210 lua_pushfstring(L, "%s:", ar.short_src);
211 if (ar.currentline > 0) 211 if (ar.currentline > 0)
212 luaL_vstr(L, "%d:", ar.currentline); 212 lua_pushfstring(L, "%d:", ar.currentline);
213 switch (*ar.namewhat) { 213 switch (*ar.namewhat) {
214 case 'g': /* global */ 214 case 'g': /* global */
215 case 'l': /* local */ 215 case 'l': /* local */
216 case 'f': /* field */ 216 case 'f': /* field */
217 case 'm': /* method */ 217 case 'm': /* method */
218 luaL_vstr(L, " in function `%s'", ar.name); 218 lua_pushfstring(L, " in function `%s'", ar.name);
219 break; 219 break;
220 default: { 220 default: {
221 if (*ar.what == 'm') /* main? */ 221 if (*ar.what == 'm') /* main? */
222 luaL_vstr(L, " in main chunk"); 222 lua_pushfstring(L, " in main chunk");
223 else if (*ar.what == 'C') /* C function? */ 223 else if (*ar.what == 'C') /* C function? */
224 luaL_vstr(L, "%s", ar.short_src); 224 lua_pushfstring(L, "%s", ar.short_src);
225 else 225 else
226 luaL_vstr(L, " in function <%s:%d>", ar.short_src, ar.linedefined); 226 lua_pushfstring(L, " in function <%s:%d>",
227 ar.short_src, ar.linedefined);
227 } 228 }
228 } 229 }
229 lua_pushliteral(L, "\n"); 230 lua_pushliteral(L, "\n");