function "luaL_argerror" prints wrong argument number (from a user's point

of view) when functions have upvalues.
This commit is contained in:
Roberto Ierusalimschy
1998-09-07 15:59:59 -03:00
parent b1450721be
commit ce9609296c
3 changed files with 17 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
/*
** $Id: lauxlib.c,v 1.11 1998/06/18 16:57:03 roberto Exp roberto $
** $Id: lauxlib.c,v 1.12 1998/06/19 16:14:09 roberto Exp roberto $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@@ -27,10 +27,11 @@ int luaL_findstring (char *name, char *list[]) {
return -1; /* name not found */
}
void luaL_argerror (int numarg, char *extramsg)
{
void luaL_argerror (int numarg, char *extramsg) {
lua_Function f = lua_stackedfunction(0);
char *funcname;
lua_getobjname(lua_stackedfunction(0), &funcname);
lua_getobjname(f, &funcname);
numarg -= lua_nups(f);
if (funcname == NULL)
funcname = "???";
if (extramsg == NULL)