diff options
| -rw-r--r-- | ldblib.c | 35 | ||||
| -rw-r--r-- | lmathlib.c | 17 |
2 files changed, 17 insertions, 35 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: ldblib.c,v 1.133 2013/06/25 19:37:00 roberto Exp roberto $ | 2 | ** $Id: ldblib.c,v 1.134 2013/07/10 20:57:05 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,38 +34,6 @@ 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 | |||
| 69 | static int db_getregistry (lua_State *L) { | 37 | static int db_getregistry (lua_State *L) { |
| 70 | lua_pushvalue(L, LUA_REGISTRYINDEX); | 38 | lua_pushvalue(L, LUA_REGISTRYINDEX); |
| 71 | return 1; | 39 | return 1; |
| @@ -431,7 +399,6 @@ static const luaL_Reg dblib[] = { | |||
| 431 | {"setlocal", db_setlocal}, | 399 | {"setlocal", db_setlocal}, |
| 432 | {"setmetatable", db_setmetatable}, | 400 | {"setmetatable", db_setmetatable}, |
| 433 | {"setupvalue", db_setupvalue}, | 401 | {"setupvalue", db_setupvalue}, |
| 434 | {"subtype", db_subtype}, | ||
| 435 | {"traceback", db_traceback}, | 402 | {"traceback", db_traceback}, |
| 436 | {NULL, NULL} | 403 | {NULL, NULL} |
| 437 | }; | 404 | }; |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lmathlib.c,v 1.90 2013/07/03 17:23:19 roberto Exp roberto $ | 2 | ** $Id: lmathlib.c,v 1.91 2013/07/10 20:57:05 roberto Exp roberto $ |
| 3 | ** Standard mathematical library | 3 | ** Standard mathematical library |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -251,6 +251,20 @@ static int math_randomseed (lua_State *L) { | |||
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | 253 | ||
| 254 | static int math_type (lua_State *L) { | ||
| 255 | luaL_checkany(L, 1); | ||
| 256 | if (lua_type(L, 1) == LUA_TNUMBER) { | ||
| 257 | if (lua_isinteger(L, 1)) | ||
| 258 | lua_pushliteral(L, "integer"); | ||
| 259 | else | ||
| 260 | lua_pushliteral(L, "float"); | ||
| 261 | } | ||
| 262 | else | ||
| 263 | lua_pushnil(L); | ||
| 264 | return 1; | ||
| 265 | } | ||
| 266 | |||
| 267 | |||
| 254 | static const luaL_Reg mathlib[] = { | 268 | static const luaL_Reg mathlib[] = { |
| 255 | {"abs", math_abs}, | 269 | {"abs", math_abs}, |
| 256 | {"acos", math_acos}, | 270 | {"acos", math_acos}, |
| @@ -283,6 +297,7 @@ static const luaL_Reg mathlib[] = { | |||
| 283 | {"sqrt", math_sqrt}, | 297 | {"sqrt", math_sqrt}, |
| 284 | {"tanh", math_tanh}, | 298 | {"tanh", math_tanh}, |
| 285 | {"tan", math_tan}, | 299 | {"tan", math_tan}, |
| 300 | {"type", math_type}, | ||
| 286 | {NULL, NULL} | 301 | {NULL, NULL} |
| 287 | }; | 302 | }; |
| 288 | 303 | ||
