extract a helper
This commit is contained in:
parent
6bdc3d17a7
commit
fa6faaa700
25
src/lua.c
25
src/lua.c
|
@ -640,6 +640,21 @@ static int handle_luainit (lua_State *L) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* roughly equivalent to:
|
||||||
|
* globalname = require(filename) */
|
||||||
|
static int dorequire (lua_State *L, const char *filename, const char *globalname) {
|
||||||
|
int status = luaL_loadfile(L, filename) || docall(L, /*nargs*/0, /*don't clean up stack*/0);
|
||||||
|
if (status != 0) return report(L, status);
|
||||||
|
if (lua_isnil(L, -1)) {
|
||||||
|
endwin();
|
||||||
|
printf("%s didn't return a module\n", filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
lua_setglobal(L, globalname);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct Smain {
|
struct Smain {
|
||||||
int argc;
|
int argc;
|
||||||
char **argv;
|
char **argv;
|
||||||
|
@ -657,14 +672,8 @@ static int pmain (lua_State *L) {
|
||||||
if (argv[0] && argv[0][0]) progname = argv[0];
|
if (argv[0] && argv[0][0]) progname = argv[0];
|
||||||
lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */
|
lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */
|
||||||
luaL_openlibs(L); /* open libraries */
|
luaL_openlibs(L); /* open libraries */
|
||||||
status = luaL_loadfile(L, "src/lcurses/curses.lua") || docall(L, /*nargs*/0, /*don't clean up stack*/0);
|
status = dorequire(L, "src/lcurses/curses.lua", "curses");
|
||||||
if (status != 0) return report(L, status);
|
if (status != 0) return 0;
|
||||||
if (lua_isnil(L, -1)) {
|
|
||||||
endwin();
|
|
||||||
printf("lcurses/curses.lua didn't return a module\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
lua_setglobal(L, "curses");
|
|
||||||
lua_gc(L, LUA_GCRESTART, 0);
|
lua_gc(L, LUA_GCRESTART, 0);
|
||||||
s->status = handle_luainit(L);
|
s->status = handle_luainit(L);
|
||||||
if (s->status != 0) return 0;
|
if (s->status != 0) return 0;
|
||||||
|
|
Loading…
Reference in New Issue