|
|
@ -1,5 +1,5 @@ |
|
|
|
/*
|
|
|
|
** $Id: ldebug.c,v 1.129 2002/08/07 14:35:55 roberto Exp roberto $ |
|
|
|
** $Id: ldebug.c,v 1.130 2002/08/07 19:22:39 roberto Exp roberto $ |
|
|
|
** Debug Interface |
|
|
|
** See Copyright Notice in lua.h |
|
|
|
*/ |
|
|
@ -518,13 +518,10 @@ int luaG_ordererror (lua_State *L, const TObject *p1, const TObject *p2) { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void addinfo (lua_State *L, int internal) { |
|
|
|
const char *msg = svalue(L->top - 1); |
|
|
|
static void addinfo (lua_State *L, const char *msg) { |
|
|
|
CallInfo *ci = L->ci; |
|
|
|
if (!internal && ci > L->base_ci) ci--; |
|
|
|
if (strchr(msg, '\n')) return; /* message already `formatted' */ |
|
|
|
if (!isLua(ci)) { /* no Lua code? */ |
|
|
|
luaO_pushfstring(L, "%s\n", msg); /* no extra info */ |
|
|
|
luaO_pushfstring(L, "%s\n", msg); /* no extra info; just add '\n' */ |
|
|
|
} |
|
|
|
else { /* add file:line information */ |
|
|
|
char buff[LUA_IDSIZE]; |
|
|
@ -535,9 +532,7 @@ static void addinfo (lua_State *L, int internal) { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void luaG_errormsg (lua_State *L, int internal) { |
|
|
|
if (ttisstring(L->top - 1)) |
|
|
|
addinfo(L, internal); |
|
|
|
void luaG_errormsg (lua_State *L) { |
|
|
|
if (L->errfunc != 0) { /* is there an error handling function? */ |
|
|
|
StkId errfunc = restorestack(L, L->errfunc); |
|
|
|
if (!ttisfunction(errfunc)) luaD_throw(L, LUA_ERRERR); |
|
|
@ -553,8 +548,8 @@ void luaG_errormsg (lua_State *L, int internal) { |
|
|
|
void luaG_runerror (lua_State *L, const char *fmt, ...) { |
|
|
|
va_list argp; |
|
|
|
va_start(argp, fmt); |
|
|
|
luaO_pushvfstring(L, fmt, argp); |
|
|
|
addinfo(L, luaO_pushvfstring(L, fmt, argp)); |
|
|
|
va_end(argp); |
|
|
|
luaG_errormsg(L, 1); |
|
|
|
luaG_errormsg(L); |
|
|
|
} |
|
|
|
|
|
|
|