diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2013-07-10 17:57:05 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2013-07-10 17:57:05 -0300 |
| commit | fcf99bf7889ab33d8be84504378c32865f4a60f3 (patch) | |
| tree | 388203563f4b179e71eaf14a775e020038172f1e /ldblib.c | |
| parent | 98d76cdcae713851872fa9ae1e76fcc09298d824 (diff) | |
| download | lua-fcf99bf7889ab33d8be84504378c32865f4a60f3.tar.gz lua-fcf99bf7889ab33d8be84504378c32865f4a60f3.tar.bz2 lua-fcf99bf7889ab33d8be84504378c32865f4a60f3.zip | |
'math.isfloat' replaced by 'debug.subtype'
Diffstat (limited to 'ldblib.c')
| -rw-r--r-- | ldblib.c | 35 |
1 files changed, 34 insertions, 1 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: ldblib.c,v 1.132 2012/01/19 20:14:44 roberto Exp roberto $ | 2 | ** $Id: ldblib.c,v 1.133 2013/06/25 19:37:00 roberto Exp roberto $ |
| 3 | ** Interface from Lua to its debug API | 3 | ** Interface from Lua to its debug API |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -34,6 +34,38 @@ static int db_numbits (lua_State *L) { | |||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | 36 | ||
| 37 | static int db_subtype (lua_State *L) { | ||
| 38 | int tp = lua_type(L, 1); | ||
| 39 | switch (tp) { | ||
| 40 | case LUA_TNONE: | ||
| 41 | luaL_checkany(L, 1); | ||
| 42 | break; | ||
| 43 | case LUA_TNUMBER: | ||
| 44 | if (lua_isinteger(L, 1)) | ||
| 45 | lua_pushliteral(L, "integer"); | ||
| 46 | else | ||
| 47 | lua_pushliteral(L, "float"); | ||
| 48 | break; | ||
| 49 | case LUA_TFUNCTION: | ||
| 50 | if (lua_iscfunction(L, 1)) | ||
| 51 | lua_pushliteral(L, "Cfunction"); | ||
| 52 | else | ||
| 53 | lua_pushliteral(L, "Luafunction"); | ||
| 54 | break; | ||
| 55 | case LUA_TUSERDATA: | ||
| 56 | if (lua_islightuserdata(L, 1)) | ||
| 57 | lua_pushliteral(L, "lightudata"); | ||
| 58 | else | ||
| 59 | lua_pushliteral(L, "fulludata"); | ||
| 60 | break; | ||
| 61 | default: | ||
| 62 | lua_pushstring(L, lua_typename(L, tp)); | ||
| 63 | break; | ||
| 64 | } | ||
| 65 | return 1; | ||
| 66 | } | ||
| 67 | |||
| 68 | |||
| 37 | static int db_getregistry (lua_State *L) { | 69 | static int db_getregistry (lua_State *L) { |
| 38 | lua_pushvalue(L, LUA_REGISTRYINDEX); | 70 | lua_pushvalue(L, LUA_REGISTRYINDEX); |
| 39 | return 1; | 71 | return 1; |
| @@ -399,6 +431,7 @@ static const luaL_Reg dblib[] = { | |||
| 399 | {"setlocal", db_setlocal}, | 431 | {"setlocal", db_setlocal}, |
| 400 | {"setmetatable", db_setmetatable}, | 432 | {"setmetatable", db_setmetatable}, |
| 401 | {"setupvalue", db_setupvalue}, | 433 | {"setupvalue", db_setupvalue}, |
| 434 | {"subtype", db_subtype}, | ||
| 402 | {"traceback", db_traceback}, | 435 | {"traceback", db_traceback}, |
| 403 | {NULL, NULL} | 436 | {NULL, NULL} |
| 404 | }; | 437 | }; |
