[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [PATCH] 'data' mode for loadfile
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Mon, 17 Mar 2014 13:12:36 -0300
> The data mode patch defines a new mode 'd' for loadfile which raises
> an error at the lexical stage if any loop construct or function
> definition has been found when loading the file.
A simpler solution, whic requires no further patch to the code,
might be to include this function in lapi.c:
int lua_reserve (lua_State *L, const char* s, int rnew) {
TString *ts = luaS_new(L,s);
int r= ts->tsv.extra;
ts->tsv.extra = rnew;
return r;
}
To unreserve a keyword, do
int r=lua_reserve(L,"while",0);
To re-reserve an unreserved keyword, do
lua_reserve(L,"while",r);
where r is the value returned by the previous call to lua_reserve.
Then write your own version of loadfile the first unreserves all keywords
that you deem dangerous, calls the original loadfile, and then restores
all unreserved keywords.