forked from github/server
try loading config.lua and custom.lua files, if they exist.
This commit is contained in:
parent
abeb7e344e
commit
f4e25fe20e
|
@ -1168,21 +1168,21 @@ lua_State *lua_init(const dictionary *inifile) {
|
|||
return L;
|
||||
}
|
||||
|
||||
int eressea_run(lua_State *L, const char *luafile)
|
||||
{
|
||||
int err = 0;
|
||||
static int run_script(lua_State *L, const char *luafile) {
|
||||
int err;
|
||||
FILE *F;
|
||||
|
||||
global.vm_state = L;
|
||||
/* run the main script */
|
||||
if (luafile) {
|
||||
log_debug("executing script %s\n", luafile);
|
||||
F = fopen(luafile, "r");
|
||||
if (!F) {
|
||||
log_debug("dofile('%s'): %s", luafile, strerror(errno));
|
||||
return errno;
|
||||
}
|
||||
fclose(F);
|
||||
|
||||
lua_getglobal(L, "debug");
|
||||
lua_getfield(L, -1, "traceback");
|
||||
lua_remove(L, -2);
|
||||
log_debug("executing script %s", luafile);
|
||||
lua_getglobal(L, "dofile");
|
||||
lua_pushstring(L, luafile);
|
||||
err = lua_pcall(L, 1, 1, -3);
|
||||
err = lua_pcall(L, 1, 1, -3); /* error handler (debug.traceback) is now at stack -3 */
|
||||
if (err != 0) {
|
||||
log_lua_error(L);
|
||||
assert(!"Lua syntax error? check log.");
|
||||
|
@ -1194,6 +1194,30 @@ int eressea_run(lua_State *L, const char *luafile)
|
|||
lua_pop(L, 1);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
return lua_console(L);
|
||||
}
|
||||
|
||||
int eressea_run(lua_State *L, const char *luafile)
|
||||
{
|
||||
int err;
|
||||
global.vm_state = L;
|
||||
|
||||
/* push an error handling function on the stack: */
|
||||
lua_getglobal(L, "debug");
|
||||
lua_getfield(L, -1, "traceback");
|
||||
lua_remove(L, -2);
|
||||
|
||||
/* try to run configuration scripts: */
|
||||
err = run_script(L, "config.lua");
|
||||
err = run_script(L, "custom.lua");
|
||||
|
||||
/* run the main script */
|
||||
if (luafile) {
|
||||
err = run_script(L, luafile);
|
||||
}
|
||||
else {
|
||||
err = lua_console(L);
|
||||
}
|
||||
/* pop error handler off the stack: */
|
||||
lua_pop(L, 1);
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,6 @@ extern "C" {
|
|||
extern int enc_gamedata;
|
||||
|
||||
int readorders(const char *filename);
|
||||
int creategame(void);
|
||||
int readgame(const char *filename);
|
||||
int writegame(const char *filename);
|
||||
|
||||
|
|
Loading…
Reference in New Issue