aboutsummaryrefslogtreecommitdiff
path: root/strlib.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1996-03-19 19:28:37 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1996-03-19 19:28:37 -0300
commita275d9a25b161af426696d7b73d46f91150309c9 (patch)
tree763a5694213fe30b231bc81777cec71828935696 /strlib.c
parent7e0be1fbde80d72886e11bcbf114a8dbf6d5e1d9 (diff)
downloadlua-a275d9a25b161af426696d7b73d46f91150309c9.tar.gz
lua-a275d9a25b161af426696d7b73d46f91150309c9.tar.bz2
lua-a275d9a25b161af426696d7b73d46f91150309c9.zip
functions "lua_is..." consider coercions.
Diffstat (limited to 'strlib.c')
-rw-r--r--strlib.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/strlib.c b/strlib.c
index 59d855a4..93965b76 100644
--- a/strlib.c
+++ b/strlib.c
@@ -3,7 +3,7 @@
3** String library to LUA 3** String library to LUA
4*/ 4*/
5 5
6char *rcs_strlib="$Id: strlib.c,v 1.18 1996/02/12 18:34:44 roberto Exp roberto $"; 6char *rcs_strlib="$Id: strlib.c,v 1.19 1996/03/14 15:52:35 roberto Exp roberto $";
7 7
8#include <string.h> 8#include <string.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -24,7 +24,7 @@ void lua_arg_error(char *funcname)
24char *lua_check_string (int numArg, char *funcname) 24char *lua_check_string (int numArg, char *funcname)
25{ 25{
26 lua_Object o = lua_getparam(numArg); 26 lua_Object o = lua_getparam(numArg);
27 if (!(lua_isstring(o) || lua_isnumber(o))) 27 if (!lua_isstring(o))
28 lua_arg_error(funcname); 28 lua_arg_error(funcname);
29 return lua_getstring(o); 29 return lua_getstring(o);
30} 30}
@@ -32,17 +32,9 @@ char *lua_check_string (int numArg, char *funcname)
32double lua_check_number (int numArg, char *funcname) 32double lua_check_number (int numArg, char *funcname)
33{ 33{
34 lua_Object o = lua_getparam(numArg); 34 lua_Object o = lua_getparam(numArg);
35 if (lua_isnumber(o)) 35 if (!lua_isnumber(o))
36 return lua_getnumber(o); 36 lua_arg_error(funcname);
37 else if (lua_isstring(o)) 37 return lua_getnumber(o);
38 {
39 float t;
40 char c;
41 if (sscanf(lua_getstring(o), "%f %c",&t, &c) == 1)
42 return t;
43 }
44 lua_arg_error(funcname);
45 return 0; /* to avoid warnings */
46} 38}
47 39
48char *luaI_addchar (int c) 40char *luaI_addchar (int c)