[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Overriding the default 'require' in libLua (offer)
- From: Paul Bergen <bergen.p0@...>
- Date: Wed, 4 Jan 2012 09:36:06 -0800
We have our own application, written in C, that allows users to embed
snippets of Lua which our C program then executes at various times.
Rather than writing all the Lua code directly inline, our users want
to be able to have common modules with shared code that they can
include with a 'require'. If they put this shared code in a file,
like mycode.lua, and put the file in the same folder as our C program,
it works fine. However, we have our own user interface and don't want
to put these stray files in our program directory. Rather, we will
compress them and bundle them in our own data files.
So this means the 'require' in Lua will error out and won't find the
file. So when we create the Lua state in our C app, we want to
override the built-in 'require' to instead point to our own C
function. In our C function, it should be identical to the stock Lua
require, except that if the fopen() command fails, we want to have our
own code which retrieves the contents of the files ourself, from our
own data store. We won't be parsing the contents or doing anything
with them. Just putting them in a (char *) buffer and handing it back
to the stock Lua require function to process the same as if it had
opened the file itself with fopen().
Anybody know how to do this? And if anybody cares to write the C code
to do this, I'll be happy to paypal/wire some money for it. I'm not
too familiar with libLua and under time pressure.