aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-10-05 16:33:43 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-10-05 16:33:43 -0200
commit1942b5860981bc6398fe7db2479885fe41297c92 (patch)
treea0b4de1a76dd677cfc632693a7f6d2750e158be5
parent4343420d4d559a7d4cdacdbc1fd61552dcf59f04 (diff)
downloadlua-1942b5860981bc6398fe7db2479885fe41297c92.tar.gz
lua-1942b5860981bc6398fe7db2479885fe41297c92.tar.bz2
lua-1942b5860981bc6398fe7db2479885fe41297c92.zip
details
-rw-r--r--lauxlib.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/lauxlib.c b/lauxlib.c
index b49dd4a1..e97a20d5 100644
--- a/lauxlib.c
+++ b/lauxlib.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lauxlib.c,v 1.18 1999/08/16 20:52:00 roberto Exp roberto $ 2** $Id: lauxlib.c,v 1.19 1999/09/06 13:13:03 roberto Exp roberto $
3** Auxiliary functions for building Lua libraries 3** Auxiliary functions for building Lua libraries
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -39,16 +39,24 @@ void luaL_argerror (int numarg, const char *extramsg) {
39 numarg, funcname, extramsg); 39 numarg, funcname, extramsg);
40} 40}
41 41
42const char *luaL_check_lstr (int numArg, long *len) { 42static const char *checkstr (lua_Object o, int numArg, long *len) {
43 lua_Object o = lua_getparam(numArg); 43 const char *s = lua_getstring(o);
44 luaL_arg_check(lua_isstring(o), numArg, "string expected"); 44 luaL_arg_check(s, numArg, "string expected");
45 if (len) *len = lua_strlen(o); 45 if (len) *len = lua_strlen(o);
46 return lua_getstring(o); 46 return s;
47}
48
49const char *luaL_check_lstr (int numArg, long *len) {
50 return checkstr(lua_getparam(numArg), numArg, len);
47} 51}
48 52
49const char *luaL_opt_lstr (int numArg, const char *def, long *len) { 53const char *luaL_opt_lstr (int numArg, const char *def, long *len) {
50 return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : 54 lua_Object o = lua_getparam(numArg);
51 luaL_check_lstr(numArg, len); 55 if (o == LUA_NOOBJECT) {
56 if (len) *len = def ? strlen(def) : 0;
57 return def;
58 }
59 else return checkstr(o, numArg, len);
52} 60}
53 61
54double luaL_check_number (int numArg) { 62double luaL_check_number (int numArg) {
@@ -59,9 +67,13 @@ double luaL_check_number (int numArg) {
59 67
60 68
61double luaL_opt_number (int numArg, double def) { 69double luaL_opt_number (int numArg, double def) {
62 return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : 70 lua_Object o = lua_getparam(numArg);
63 luaL_check_number(numArg); 71 if (o == LUA_NOOBJECT) return def;
64} 72 else {
73 luaL_arg_check(lua_isnumber(o), numArg, "number expected");
74 return lua_getnumber(o);
75 }
76}
65 77
66 78
67lua_Object luaL_tablearg (int arg) { 79lua_Object luaL_tablearg (int arg) {