From ce9609296ce5d761e58af4cccdab6ca925613bea Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 7 Sep 1998 15:59:59 -0300 Subject: function "luaL_argerror" prints wrong argument number (from a user's point of view) when functions have upvalues. --- lauxlib.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lauxlib.c') diff --git a/lauxlib.c b/lauxlib.c index 415c4fea..c8c1f3d6 100644 --- a/lauxlib.c +++ b/lauxlib.c @@ -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) -- cgit v1.2.3-55-g6feb