diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-09-14 11:09:31 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-09-14 11:09:31 -0300 |
commit | 620d22f2a09ccfe5b7a09ebc11a7b5dca28ac9e4 (patch) | |
tree | e0a789478ca78f601d4fc05b62feddb978914a65 /lbaselib.c | |
parent | f45cba42b5c32758337f62c56e98fdb85a9f4af2 (diff) | |
download | lua-620d22f2a09ccfe5b7a09ebc11a7b5dca28ac9e4.tar.gz lua-620d22f2a09ccfe5b7a09ebc11a7b5dca28ac9e4.tar.bz2 lua-620d22f2a09ccfe5b7a09ebc11a7b5dca28ac9e4.zip |
new API function lua_rawget
Diffstat (limited to 'lbaselib.c')
-rw-r--r-- | lbaselib.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lbaselib.c,v 1.3 2000/09/12 18:41:43 roberto Exp roberto $ | 2 | ** $Id: lbaselib.c,v 1.4 2000/09/13 19:52:39 roberto Exp roberto $ |
3 | ** Basic library | 3 | ** Basic library |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -51,7 +51,7 @@ static int luaB__ERRORMESSAGE (lua_State *L) { | |||
51 | } | 51 | } |
52 | lua_pushstring(L, "\n"); | 52 | lua_pushstring(L, "\n"); |
53 | lua_concat(L, 3); | 53 | lua_concat(L, 3); |
54 | lua_call(L, 1, 0); | 54 | lua_rawcall(L, 1, 0); |
55 | } | 55 | } |
56 | return 0; | 56 | return 0; |
57 | } | 57 | } |
@@ -71,8 +71,7 @@ static int luaB_print (lua_State *L) { | |||
71 | const char *s; | 71 | const char *s; |
72 | lua_pushvalue(L, -1); /* function to be called */ | 72 | lua_pushvalue(L, -1); /* function to be called */ |
73 | lua_pushvalue(L, i); /* value to print */ | 73 | lua_pushvalue(L, i); /* value to print */ |
74 | if (lua_call(L, 1, 1) != 0) | 74 | lua_rawcall(L, 1, 1); |
75 | lua_error(L, NULL); | ||
76 | s = lua_tostring(L, -1); /* get result */ | 75 | s = lua_tostring(L, -1); /* get result */ |
77 | if (s == NULL) | 76 | if (s == NULL) |
78 | lua_error(L, "`tostring' must return a string to `print'"); | 77 | lua_error(L, "`tostring' must return a string to `print'"); |
@@ -335,8 +334,7 @@ static int luaB_foreachi (lua_State *L) { | |||
335 | lua_pushvalue(L, 2); /* function */ | 334 | lua_pushvalue(L, 2); /* function */ |
336 | lua_pushnumber(L, i); /* 1st argument */ | 335 | lua_pushnumber(L, i); /* 1st argument */ |
337 | lua_rawgeti(L, 1, i); /* 2nd argument */ | 336 | lua_rawgeti(L, 1, i); /* 2nd argument */ |
338 | if (lua_call(L, 2, 1) != 0) | 337 | lua_rawcall(L, 2, 1); |
339 | lua_error(L, NULL); | ||
340 | if (!lua_isnil(L, -1)) | 338 | if (!lua_isnil(L, -1)) |
341 | return 1; | 339 | return 1; |
342 | lua_pop(L, 1); /* remove nil result */ | 340 | lua_pop(L, 1); /* remove nil result */ |
@@ -355,7 +353,7 @@ static int luaB_foreach (lua_State *L) { | |||
355 | lua_pushvalue(L, 2); /* function */ | 353 | lua_pushvalue(L, 2); /* function */ |
356 | lua_pushvalue(L, -3); /* key */ | 354 | lua_pushvalue(L, -3); /* key */ |
357 | lua_pushvalue(L, -3); /* value */ | 355 | lua_pushvalue(L, -3); /* value */ |
358 | if (lua_call(L, 2, 1) != 0) lua_error(L, NULL); | 356 | lua_rawcall(L, 2, 1); |
359 | if (!lua_isnil(L, -1)) | 357 | if (!lua_isnil(L, -1)) |
360 | return 1; | 358 | return 1; |
361 | lua_pop(L, 2); /* remove value and result */ | 359 | lua_pop(L, 2); /* remove value and result */ |
@@ -450,7 +448,7 @@ static int sort_comp (lua_State *L, int n, int r) { | |||
450 | lua_pushvalue(L, -2); /* pivot */ | 448 | lua_pushvalue(L, -2); /* pivot */ |
451 | lua_rawgeti(L, 1, n); /* a[n] */ | 449 | lua_rawgeti(L, 1, n); /* a[n] */ |
452 | } | 450 | } |
453 | if (lua_call(L, 2, 1) != 0) lua_error(L, NULL); | 451 | lua_rawcall(L, 2, 1); |
454 | res = !lua_isnil(L, -1); | 452 | res = !lua_isnil(L, -1); |
455 | } | 453 | } |
456 | else { /* a < b? */ | 454 | else { /* a < b? */ |
@@ -553,8 +551,7 @@ static int deprecated_func (lua_State *L) { | |||
553 | lua_insert(L, 1); /* upvalue is the function to be called */ | 551 | lua_insert(L, 1); /* upvalue is the function to be called */ |
554 | lua_getglobals(L); | 552 | lua_getglobals(L); |
555 | lua_insert(L, 2); /* table of globals is 1o argument */ | 553 | lua_insert(L, 2); /* table of globals is 1o argument */ |
556 | if (lua_call(L, lua_gettop(L)-1, LUA_MULTRET) != 0) | 554 | lua_rawcall(L, lua_gettop(L)-1, LUA_MULTRET); |
557 | lua_error(L, NULL); | ||
558 | return lua_gettop(L); /* return all results */ | 555 | return lua_gettop(L); /* return all results */ |
559 | } | 556 | } |
560 | 557 | ||