From 4f6c5fb93ff2b778e362dfcc0cb0f175be9edd9e Mon Sep 17 00:00:00 2001 From: Allanis Date: Fri, 26 Jul 2013 18:39:21 +0100 Subject: [PATCH] [Fix] Sanitized lua bindings a little. --- src/llua.c | 76 +++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/llua.c b/src/llua.c index b39775b..0f85c82 100644 --- a/src/llua.c +++ b/src/llua.c @@ -84,7 +84,7 @@ lua_State* llua_newState(void) { int llua_load(lua_State* L, lua_CFunction f) { lua_pushcfunction(L, f); if(lua_pcall(L, 0, 0, 0)) - WARN("llua include error: %s", lua_tostring(L, -1)); + WARN("llua include error: %s", lua_tostring(L, 1)); return 0; } @@ -129,12 +129,12 @@ static int llua_packfileLoader(lua_State* L) { LLUA_MIN_ARGS(1); - if(!lua_isstring(L, -1)) { + if(!lua_isstring(L, 1)) { LLUA_INVALID_PARAMETER(); return 0; } - filename = (char*) lua_tostring(L, -1); + filename = (char*) lua_tostring(L, 1); /* Try to locate the data. */ buf = pack_readfile(DATA, filename, &bufsize); @@ -203,15 +203,15 @@ static int space_getPlanet(lua_State* L) { lua_pushstring(L, space_getRndPlanet()); return 1; } - else if(lua_isnumber(L, -1)) { - i = lua_tonumber(L, -1); + else if(lua_isnumber(L, 1)) { + i = lua_tonumber(L, 1); planets = space_getFactionPlanet(&nplanets, &i, 1); } - else if(lua_isstring(L, -1)) { - i = faction_get((char*) lua_tostring(L, -1)); + else if(lua_isstring(L, 1)) { + i = faction_get((char*) lua_tostring(L, 1)); planets = space_getFactionPlanet(&nplanets, &i, 1); } - else if(lua_istable(L, -1)) { + else if(lua_istable(L, 1)) { /* Load up the table. */ lua_pushnil(L); nfactions = (int) lua_gettop(L); @@ -245,7 +245,7 @@ static int space_getSystem(lua_State* L) { LLUA_MIN_ARGS(1); char* planetname, *sysname; - if(lua_isstring(L, -1)) planetname = (char*) lua_tostring(L, -1); + if(lua_isstring(L, 1)) planetname = (char*) lua_tostring(L, 1); else return 0; sysname = planet_getSystem(planetname); @@ -272,12 +272,12 @@ static int space_jumpDist(lua_State* L) { int jumps; char* start, *goal; - if(lua_isstring(L, -1)) - start = (char*)lua_tostring(L, -1); + if(lua_isstring(L, 1)) + start = (char*)lua_tostring(L, 1); else LLUA_INVALID_PARAMETER(); - if((lua_gettop(L) > 1) && lua_isstring(L, -2)) - goal = (char*) lua_tostring(L, -2); + if((lua_gettop(L) > 1) && lua_isstring(L, 2)) + goal = (char*) lua_tostring(L, 2); else goal = cur_system->name; @@ -296,8 +296,8 @@ static int time_get(lua_State* L) { static int time_str(lua_State* L) { char* lt; - if((lua_gettop(L) > 0) && (lua_isnumber(L, -1))) - lt = ltime_pretty((unsigned int) lua_tonumber(L, -1)); + if((lua_gettop(L) > 0) && (lua_isnumber(L, 1))) + lt = ltime_pretty((unsigned int) lua_tonumber(L, 1)); else lt = ltime_pretty(ltime_get()); lua_pushstring(L, lt); @@ -306,8 +306,8 @@ static int time_str(lua_State* L) { } static int time_units(lua_State* L) { - if((lua_gettop(L) > 0) && (lua_isnumber(L, -1))) - lua_pushnumber(L, (unsigned int) lua_tonumber(L, -1) * LTIME_UNIT_LENGTH); + if((lua_gettop(L) > 0) && (lua_isnumber(L, 1))) + lua_pushnumber(L, (unsigned int) lua_tonumber(L, 1) * LTIME_UNIT_LENGTH); else lua_pushnumber(L, LTIME_UNIT_LENGTH); return 1; @@ -322,17 +322,17 @@ static int rnd_int(lua_State* L) { if(o == 0) lua_pushnumber(L, RNGF()); /* Random double o <= x <= 1. */ else if(o == 1) { /* Random int 0 <= x <= param. */ - if(lua_isnumber(L, -1)) - lua_pushnumber(L, RNG(0, (int)lua_tonumber(L, -1))); + if(lua_isnumber(L, 1)) + lua_pushnumber(L, RNG(0, (int)lua_tonumber(L, 1))); else return 0; } else if(o >= 2) { /* Random int param 1 <= x <= param 2. */ - if(lua_isnumber(L, -1) && lua_isnumber(L, -2)) - lua_pushnumber(L, RNG((int)lua_tonumber(L, -2), (int)lua_tonumber(L, -1))); + if(lua_isnumber(L, 1) && lua_isnumber(L, 2)) + lua_pushnumber(L, RNG((int)lua_tonumber(L, 1), (int)lua_tonumber(L, 2))); else return 0; } - else return 0; + else LLUA_INVALID_PARAMETER(); /* Unless it's returned 0 already it'll always return param. */ return 1; @@ -344,10 +344,10 @@ static int tk_msg(lua_State* L) { char* title, *str; LLUA_MIN_ARGS(2); - if(lua_isstring(L, -2)) title = (char*) lua_tostring(L, -2); - else return 0; - if(lua_isstring(L, -1)) str = (char*) lua_tostring(L, -1); - else return 0; + if(lua_isstring(L, 1)) title = (char*) lua_tostring(L, 1); + else LLUA_INVALID_PARAMETER(); + if(lua_isstring(L, 2)) str = (char*) lua_tostring(L, 2); + else LLUA_INVALID_PARAMETER(); dialogue_msg(title, str); return 0; @@ -358,10 +358,10 @@ static int tk_yesno(lua_State* L) { char* title, *str; LLUA_MIN_ARGS(2); - if(lua_isstring(L, -2)) title = (char*) lua_tostring(L, -2); - else return 0; - if(lua_isstring(L, -1)) str = (char*) lua_tostring(L, -1); - else return 0; + if(lua_isstring(L, 1)) title = (char*) lua_tostring(L, 1); + else LLUA_INVALID_PARAMETER(); + if(lua_isstring(L, 2)) str = (char*) lua_tostring(L, 2); + else LLUA_INVALID_PARAMETER(); ret = dialogue_YesNo(title, str); lua_pushboolean(L, ret); @@ -373,14 +373,14 @@ static int tk_input(lua_State* L) { int min, max; LLUA_MIN_ARGS(4); - if(lua_isstring(L, -4)) title = (char*) lua_tostring(L, -4); - else return 0; - if(lua_isnumber(L, -3)) min = (int) lua_tonumber(L, -3); - else return 0; - if(lua_isnumber(L, -2)) max = (int) lua_tonumber(L, -2); - else return 0; - if(lua_isstring(L, -1)) str = (char*) lua_tostring(L, -1); - else return 0; + if(lua_isstring(L, 1)) title = (char*) lua_tostring(L, 1); + else LLUA_INVALID_PARAMETER(); + if(lua_isnumber(L, 2)) min = (int) lua_tonumber(L, 2); + else LLUA_INVALID_PARAMETER(); + if(lua_isnumber(L, 3)) max = (int) lua_tonumber(L, 3); + else LLUA_INVALID_PARAMETER(); + if(lua_isstring(L, 4)) str = (char*) lua_tostring(L, 4); + else LLUA_INVALID_PARAMETER(); dialogue_input(title, min, max, str); return 0;