diff options
| -rw-r--r-- | lapi.c | 11 | ||||
| -rw-r--r-- | lbaselib.c | 4 | ||||
| -rw-r--r-- | lstrlib.c | 4 | ||||
| -rw-r--r-- | lua.h | 7 |
4 files changed, 10 insertions, 16 deletions
| @@ -185,12 +185,6 @@ LUA_API int lua_isnumber (lua_State *L, int index) { | |||
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | 187 | ||
| 188 | LUA_API int lua_istrue (lua_State *L, int index) { | ||
| 189 | TObject *o = luaA_indexAcceptable(L, index); | ||
| 190 | return (o != NULL && !l_isfalse(o)); | ||
| 191 | } | ||
| 192 | |||
| 193 | |||
| 194 | LUA_API int lua_isstring (lua_State *L, int index) { | 188 | LUA_API int lua_isstring (lua_State *L, int index) { |
| 195 | int t = lua_type(L, index); | 189 | int t = lua_type(L, index); |
| 196 | return (t == LUA_TSTRING || t == LUA_TNUMBER); | 190 | return (t == LUA_TSTRING || t == LUA_TNUMBER); |
| @@ -231,10 +225,7 @@ LUA_API lua_Number lua_tonumber (lua_State *L, int index) { | |||
| 231 | 225 | ||
| 232 | LUA_API int lua_toboolean (lua_State *L, int index) { | 226 | LUA_API int lua_toboolean (lua_State *L, int index) { |
| 233 | const TObject *o = luaA_indexAcceptable(L, index); | 227 | const TObject *o = luaA_indexAcceptable(L, index); |
| 234 | if (o != NULL && (ttype(o) == LUA_TBOOLEAN)) | 228 | return (o != NULL) && !l_isfalse(o); |
| 235 | return bvalue(o); | ||
| 236 | else | ||
| 237 | return -1; | ||
| 238 | } | 229 | } |
| 239 | 230 | ||
| 240 | 231 | ||
| @@ -264,7 +264,7 @@ static int luaB_loadfile (lua_State *L) { | |||
| 264 | 264 | ||
| 265 | static int luaB_assert (lua_State *L) { | 265 | static int luaB_assert (lua_State *L) { |
| 266 | luaL_check_any(L, 1); | 266 | luaL_check_any(L, 1); |
| 267 | if (!lua_istrue(L, 1)) | 267 | if (!lua_toboolean(L, 1)) |
| 268 | luaL_verror(L, "assertion failed! %.90s", luaL_opt_string(L, 2, "")); | 268 | luaL_verror(L, "assertion failed! %.90s", luaL_opt_string(L, 2, "")); |
| 269 | lua_settop(L, 1); | 269 | lua_settop(L, 1); |
| 270 | return 1; | 270 | return 1; |
| @@ -569,7 +569,7 @@ static int sort_comp (lua_State *L, int a, int b) { | |||
| 569 | lua_pushvalue(L, a-1); /* -1 to compensate function */ | 569 | lua_pushvalue(L, a-1); /* -1 to compensate function */ |
| 570 | lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */ | 570 | lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */ |
| 571 | lua_rawcall(L, 2, 1); | 571 | lua_rawcall(L, 2, 1); |
| 572 | res = lua_istrue(L, -1); | 572 | res = lua_toboolean(L, -1); |
| 573 | lua_pop(L, 1); | 573 | lua_pop(L, 1); |
| 574 | return res; | 574 | return res; |
| 575 | } | 575 | } |
| @@ -154,12 +154,12 @@ static int str_char (lua_State *L) { | |||
| 154 | typedef struct MatchState { | 154 | typedef struct MatchState { |
| 155 | const char *src_init; /* init of source string */ | 155 | const char *src_init; /* init of source string */ |
| 156 | const char *src_end; /* end (`\0') of source string */ | 156 | const char *src_end; /* end (`\0') of source string */ |
| 157 | lua_State *L; | ||
| 157 | int level; /* total number of captures (finished or unfinished) */ | 158 | int level; /* total number of captures (finished or unfinished) */ |
| 158 | struct { | 159 | struct { |
| 159 | const char *init; | 160 | const char *init; |
| 160 | sint32 len; | 161 | sint32 len; |
| 161 | } capture[MAX_CAPTURES]; | 162 | } capture[MAX_CAPTURES]; |
| 162 | lua_State *L; | ||
| 163 | } MatchState; | 163 | } MatchState; |
| 164 | 164 | ||
| 165 | 165 | ||
| @@ -449,7 +449,7 @@ static int str_find (lua_State *L) { | |||
| 449 | const char *p = luaL_check_lstr(L, 2, &l2); | 449 | const char *p = luaL_check_lstr(L, 2, &l2); |
| 450 | sint32 init = posrelat(luaL_opt_long(L, 3, 1), l1) - 1; | 450 | sint32 init = posrelat(luaL_opt_long(L, 3, 1), l1) - 1; |
| 451 | luaL_arg_check(L, 0 <= init && (size_t)(init) <= l1, 3, "out of range"); | 451 | luaL_arg_check(L, 0 <= init && (size_t)(init) <= l1, 3, "out of range"); |
| 452 | if (lua_istrue(L, 4) || /* explicit request? */ | 452 | if (lua_toboolean(L, 4) || /* explicit request? */ |
| 453 | strpbrk(p, SPECIALS) == NULL) { /* or no special characters? */ | 453 | strpbrk(p, SPECIALS) == NULL) { /* or no special characters? */ |
| 454 | /* do a plain search */ | 454 | /* do a plain search */ |
| 455 | const char *s2 = lmemfind(s+init, l1-init, p, l2); | 455 | const char *s2 = lmemfind(s+init, l1-init, p, l2); |
| @@ -117,7 +117,6 @@ LUA_API int lua_stackspace (lua_State *L); | |||
| 117 | */ | 117 | */ |
| 118 | 118 | ||
| 119 | LUA_API int lua_isnumber (lua_State *L, int index); | 119 | LUA_API int lua_isnumber (lua_State *L, int index); |
| 120 | LUA_API int lua_istrue (lua_State *L, int index); | ||
| 121 | LUA_API int lua_isstring (lua_State *L, int index); | 120 | LUA_API int lua_isstring (lua_State *L, int index); |
| 122 | LUA_API int lua_iscfunction (lua_State *L, int index); | 121 | LUA_API int lua_iscfunction (lua_State *L, int index); |
| 123 | LUA_API int lua_type (lua_State *L, int index); | 122 | LUA_API int lua_type (lua_State *L, int index); |
| @@ -217,7 +216,11 @@ LUA_API void lua_newuserdatabox (lua_State *L, void *u); | |||
| 217 | 216 | ||
| 218 | #define lua_pop(L,n) lua_settop(L, -(n)-1) | 217 | #define lua_pop(L,n) lua_settop(L, -(n)-1) |
| 219 | 218 | ||
| 220 | #define lua_register(L,n,f) (lua_pushcfunction(L, f), lua_setglobal(L, n)) | 219 | #define lua_register(L,n,f) \ |
| 220 | (lua_pushstring(L, n), \ | ||
| 221 | lua_pushcfunction(L, f), \ | ||
| 222 | lua_settable(L, LUA_GLOBALSINDEX)) | ||
| 223 | |||
| 221 | #define lua_pushcfunction(L,f) lua_pushcclosure(L, f, 0) | 224 | #define lua_pushcfunction(L,f) lua_pushcclosure(L, f, 0) |
| 222 | 225 | ||
| 223 | #define lua_isfunction(L,n) (lua_type(L,n) == LUA_TFUNCTION) | 226 | #define lua_isfunction(L,n) (lua_type(L,n) == LUA_TFUNCTION) |
