diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-03-19 19:28:37 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-03-19 19:28:37 -0300 |
| commit | a275d9a25b161af426696d7b73d46f91150309c9 (patch) | |
| tree | 763a5694213fe30b231bc81777cec71828935696 /strlib.c | |
| parent | 7e0be1fbde80d72886e11bcbf114a8dbf6d5e1d9 (diff) | |
| download | lua-a275d9a25b161af426696d7b73d46f91150309c9.tar.gz lua-a275d9a25b161af426696d7b73d46f91150309c9.tar.bz2 lua-a275d9a25b161af426696d7b73d46f91150309c9.zip | |
functions "lua_is..." consider coercions.
Diffstat (limited to 'strlib.c')
| -rw-r--r-- | strlib.c | 18 |
1 files changed, 5 insertions, 13 deletions
| @@ -3,7 +3,7 @@ | |||
| 3 | ** String library to LUA | 3 | ** String library to LUA |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | char *rcs_strlib="$Id: strlib.c,v 1.18 1996/02/12 18:34:44 roberto Exp roberto $"; | 6 | char *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) | |||
| 24 | char *lua_check_string (int numArg, char *funcname) | 24 | char *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) | |||
| 32 | double lua_check_number (int numArg, char *funcname) | 32 | double 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 | ||
| 48 | char *luaI_addchar (int c) | 40 | char *luaI_addchar (int c) |
