commit e931c7c0f605f140fa60d0b676fe7caf12a6f410
parent 70160320b120a6afb629c8fd1ebb3005682bafb9
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 18 Jun 1997 14:33:10 -0300
error message always shows file names.
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/iolib.c b/iolib.c
@@ -242,6 +242,9 @@ static void lua_printstack (FILE *f)
while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) {
char *name;
int currentline;
+ char *filename;
+ int linedefined;
+ lua_funcinfo(func, &filename, &linedefined);
fprintf(f, (level==2) ? "Active Stack:\n\t" : "\t");
switch (*lua_getobjname(func, &name)) {
case 'g':
@@ -251,19 +254,19 @@ static void lua_printstack (FILE *f)
fprintf(f, "`%s' tag method", name);
break;
default: {
- char *filename;
- int linedefined;
- lua_funcinfo(func, &filename, &linedefined);
if (linedefined == 0)
fprintf(f, "main of %s", filename);
else if (linedefined < 0)
fprintf(f, "%s", filename);
else
fprintf(f, "function (%s:%d)", filename, linedefined);
+ filename = NULL;
}
}
if ((currentline = lua_currentline(func)) > 0)
fprintf(f, " at line %d", currentline);
+ if (filename)
+ fprintf(f, " [in file %s]", filename);
fprintf(f, "\n");
}
}