librazor/lua.c
changeset 377 5549419824b4
parent 368 ea743486ba6f
child 400 eb6f3496b8e5
     1.1 --- a/librazor/lua.c	Wed Jun 03 08:26:09 2009 +0100
     1.2 +++ b/librazor/lua.c	Wed Jul 08 22:14:16 2009 +0100
     1.3 @@ -368,7 +368,7 @@
     1.4  }
     1.5  
     1.6  int run_lua_script(const char *root, const char *name, const char *body,
     1.7 -		   ssize_t len)
     1.8 +		   ssize_t len, int arg1)
     1.9  {
    1.10  	int i, n;
    1.11  	lua_State *L;
    1.12 @@ -428,6 +428,20 @@
    1.13  		return -1;
    1.14  	}
    1.15  
    1.16 +	lua_newtable(L);
    1.17 +	lua_pushvalue(L, LUA_GLOBALSINDEX);
    1.18 +	lua_pushliteral(L, "arg");
    1.19 +	lua_pushvalue(L, -3);
    1.20 +	lua_rawset(L, -3);
    1.21 +	lua_pop(L, 1);
    1.22 +	lua_pushliteral(L, "<lua>");
    1.23 +	lua_rawseti(L, -2, 1);
    1.24 +	if (arg1 >= 0) {
    1.25 +		lua_pushinteger(L, arg1);
    1.26 +		lua_rawseti(L, -2, 2);
    1.27 +	}
    1.28 +	lua_pop(L, 1);
    1.29 +
    1.30  	if (lua_pcall(L, 0, 0, 0)) {
    1.31  		fprintf(stderr, "lua script failed: %s\n", lua_tostring(L, -1));
    1.32  		lua_pop(L, 1);