diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-04-06 11:08:08 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-04-06 11:08:08 -0300 |
| commit | 3a9516ffc8de0d33051f83dc786dba615d6bac49 (patch) | |
| tree | 9608796ca5abb4a724d70d99cb34dd818eb95662 /auxlib.c | |
| parent | 42fa305649199712aad1c96beadb944b01277e3f (diff) | |
| download | lua-3a9516ffc8de0d33051f83dc786dba615d6bac49.tar.gz lua-3a9516ffc8de0d33051f83dc786dba615d6bac49.tar.bz2 lua-3a9516ffc8de0d33051f83dc786dba615d6bac49.zip | |
luaL check functions do not need the function name (it can be
accessed via luadebug interface).
Diffstat (limited to 'auxlib.c')
| -rw-r--r-- | auxlib.c | 25 |
1 files changed, 15 insertions, 10 deletions
| @@ -1,14 +1,19 @@ | |||
| 1 | char *rcs_auxlib="$Id: auxlib.c,v 1.1 1997/03/17 17:02:29 roberto Exp roberto $"; | 1 | char *rcs_auxlib="$Id: auxlib.c,v 1.2 1997/03/18 15:30:50 roberto Exp roberto $"; |
| 2 | 2 | ||
| 3 | #include <stdio.h> | 3 | #include <stdio.h> |
| 4 | #include <stdarg.h> | 4 | #include <stdarg.h> |
| 5 | 5 | ||
| 6 | #include "lua.h" | 6 | #include "lua.h" |
| 7 | #include "auxlib.h" | 7 | #include "auxlib.h" |
| 8 | #include "luadebug.h" | ||
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | void luaL_arg_check(int cond, char *funcname, int numarg, char *extramsg) | 11 | void luaL_arg_check(int cond, int numarg, char *extramsg) |
| 11 | { | 12 | { |
| 13 | char *funcname; | ||
| 14 | lua_getobjname(lua_stackedfunction(0), &funcname); | ||
| 15 | if (funcname == NULL) | ||
| 16 | funcname = "???"; | ||
| 12 | if (!cond) { | 17 | if (!cond) { |
| 13 | if (extramsg == NULL) | 18 | if (extramsg == NULL) |
| 14 | luaL_verror("bad argument #%d to function `%s'", numarg, funcname); | 19 | luaL_verror("bad argument #%d to function `%s'", numarg, funcname); |
| @@ -18,31 +23,31 @@ void luaL_arg_check(int cond, char *funcname, int numarg, char *extramsg) | |||
| 18 | } | 23 | } |
| 19 | } | 24 | } |
| 20 | 25 | ||
| 21 | char *luaL_check_string (int numArg, char *funcname) | 26 | char *luaL_check_string (int numArg) |
| 22 | { | 27 | { |
| 23 | lua_Object o = lua_getparam(numArg); | 28 | lua_Object o = lua_getparam(numArg); |
| 24 | luaL_arg_check(lua_isstring(o), funcname, numArg, "string expected"); | 29 | luaL_arg_check(lua_isstring(o), numArg, "string expected"); |
| 25 | return lua_getstring(o); | 30 | return lua_getstring(o); |
| 26 | } | 31 | } |
| 27 | 32 | ||
| 28 | char *luaL_opt_string (int numArg, char *def, char *funcname) | 33 | char *luaL_opt_string (int numArg, char *def) |
| 29 | { | 34 | { |
| 30 | return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | 35 | return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : |
| 31 | luaL_check_string(numArg, funcname); | 36 | luaL_check_string(numArg); |
| 32 | } | 37 | } |
| 33 | 38 | ||
| 34 | double luaL_check_number (int numArg, char *funcname) | 39 | double luaL_check_number (int numArg) |
| 35 | { | 40 | { |
| 36 | lua_Object o = lua_getparam(numArg); | 41 | lua_Object o = lua_getparam(numArg); |
| 37 | luaL_arg_check(lua_isnumber(o), funcname, numArg, "number expected"); | 42 | luaL_arg_check(lua_isnumber(o), numArg, "number expected"); |
| 38 | return lua_getnumber(o); | 43 | return lua_getnumber(o); |
| 39 | } | 44 | } |
| 40 | 45 | ||
| 41 | 46 | ||
| 42 | double luaL_opt_number (int numArg, double def, char *funcname) | 47 | double luaL_opt_number (int numArg, double def) |
| 43 | { | 48 | { |
| 44 | return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | 49 | return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : |
| 45 | luaL_check_number(numArg, funcname); | 50 | luaL_check_number(numArg); |
| 46 | } | 51 | } |
| 47 | 52 | ||
| 48 | void luaL_openlib (struct luaL_reg *l, int n) | 53 | void luaL_openlib (struct luaL_reg *l, int n) |
