From 6274ad32595dc78947e13e6a469ab077a97a37bb Mon Sep 17 00:00:00 2001 From: nhmall Date: Fri, 12 Jan 2024 12:33:26 -0500 Subject: [PATCH] whitespace adjustment src/nhlua.c I noticed some tabs had crept into the file, so adjust the whitespace. --- src/nhlua.c | 572 ++++++++++++++++++++++++++-------------------------- 1 file changed, 291 insertions(+), 281 deletions(-) diff --git a/src/nhlua.c b/src/nhlua.c index 08e422e4e..0ed1016f8 100644 --- a/src/nhlua.c +++ b/src/nhlua.c @@ -95,22 +95,22 @@ static boolean nhcore_call_available[NUM_NHCORE_CALLS]; * Note that we use it for both memory use tracking and instruction counting. */ typedef struct nhl_user_data { - uint32_t flags; /* from nhl_sandbox_info */ + uint32_t flags; /* from nhl_sandbox_info */ - uint32_t inuse; - uint32_t memlimit; + uint32_t inuse; + uint32_t memlimit; - uint32_t steps; /* current counter */ - uint32_t osteps; /* original steps value */ - uint32_t perpcall; /* per pcall steps value */ + uint32_t steps; /* current counter */ + uint32_t osteps; /* original steps value */ + uint32_t perpcall; /* per pcall steps value */ - /* stats */ - uint32_t statctr; /* stats step reload count */ - int sid; /* id number (per state) */ - const char *name; /* for stats logging (per pcall) */ + /* stats */ + uint32_t statctr; /* stats step reload count */ + int sid; /* id number (per state) */ + const char *name; /* for stats logging (per pcall) */ #ifdef NHL_SANDBOX - jmp_buf jb; + jmp_buf jb; #endif } nhl_user_data; @@ -119,7 +119,8 @@ static lua_State *luapat; /* instance for file pattern matching */ void l_nhcore_init(void) { - nhl_sandbox_info sbi = {NHL_SB_SAFE, 1*1024*1024, 0, 1*1024*1024}; + nhl_sandbox_info sbi = { NHL_SB_SAFE, 1 * 1024 * 1024, 0, + 1 * 1024 * 1024 }; if ((gl.luacore = nhl_init(&sbi)) != 0) { if (!nhl_loadlua(gl.luacore, "nhcore.lua")) { @@ -149,8 +150,8 @@ l_nhcore_call(int callidx) { int ltyp; - if (callidx < 0 || callidx >= NUM_NHCORE_CALLS - || !gl.luacore || !nhcore_call_available[callidx]) + if (callidx < 0 || callidx >= NUM_NHCORE_CALLS || !gl.luacore + || !nhcore_call_available[callidx]) return; lua_getglobal(gl.luacore, "nhcore"); @@ -180,7 +181,7 @@ ATTRNORETURN void nhl_error(lua_State *L, const char *msg) { lua_Debug ar; - char buf[BUFSZ*2]; + char buf[BUFSZ * 2]; lua_getstack(L, 1, &ar); lua_getinfo(L, "lS", &ar); @@ -254,10 +255,10 @@ get_table_mapchr_opt(lua_State *L, const char *name, schar defval) short nhl_get_timertype(lua_State *L, int idx) { - static const char *const timerstr[NUM_TIME_FUNCS+1] = { - "rot-organic", "rot-corpse", "revive-mon", "zombify-mon", - "burn-obj", "hatch-egg", "fig-transform", "melt-ice", "shrink-glob", - NULL + static const char *const timerstr[NUM_TIME_FUNCS + 1] = { + "rot-organic", "rot-corpse", "revive-mon", "zombify-mon", + "burn-obj", "hatch-egg", "fig-transform", "melt-ice", + "shrink-glob", NULL }; short ret = luaL_checkoption(L, idx, NULL, timerstr); @@ -302,8 +303,8 @@ nhl_add_table_entry_bool(lua_State *L, const char *name, boolean value) } void -nhl_add_table_entry_region(lua_State *L, const char *name, - coordxy x1, coordxy y1, coordxy x2, coordxy y2) +nhl_add_table_entry_region(lua_State *L, const char *name, coordxy x1, + coordxy y1, coordxy x2, coordxy y2) { lua_pushstring(L, name); lua_newtable(L); @@ -407,38 +408,40 @@ nhl_gettrap(lua_State *L) cvt_to_abscoord(&x, &y); if (isok(x, y)) { - struct trap *ttmp = t_at(x,y); + struct trap *ttmp = t_at(x, y); - if (ttmp) { - lua_newtable(L); + if (ttmp) { + lua_newtable(L); - nhl_add_table_entry_int(L, "tx", ttmp->tx); - nhl_add_table_entry_int(L, "ty", ttmp->ty); - nhl_add_table_entry_int(L, "ttyp", ttmp->ttyp); - nhl_add_table_entry_str(L, "ttyp_name", - get_trapname_bytype(ttmp->ttyp)); - nhl_add_table_entry_bool(L, "tseen", ttmp->tseen); - nhl_add_table_entry_bool(L, "madeby_u", ttmp->madeby_u); - switch (ttmp->ttyp) { - case SQKY_BOARD: - nhl_add_table_entry_int(L, "tnote", ttmp->tnote); - break; - case ROLLING_BOULDER_TRAP: - nhl_add_table_entry_int(L, "launchx", ttmp->launch.x); - nhl_add_table_entry_int(L, "launchy", ttmp->launch.y); - nhl_add_table_entry_int(L, "launch2x", ttmp->launch2.x); - nhl_add_table_entry_int(L, "launch2y", ttmp->launch2.y); - break; - case PIT: - case SPIKED_PIT: - nhl_add_table_entry_int(L, "conjoined", ttmp->conjoined); - break; - } - return 1; - } else - nhl_error(L, "No trap at location"); - } else - nhl_error(L, "Coordinates out of range"); + nhl_add_table_entry_int(L, "tx", ttmp->tx); + nhl_add_table_entry_int(L, "ty", ttmp->ty); + nhl_add_table_entry_int(L, "ttyp", ttmp->ttyp); + nhl_add_table_entry_str(L, "ttyp_name", + get_trapname_bytype(ttmp->ttyp)); + nhl_add_table_entry_bool(L, "tseen", ttmp->tseen); + nhl_add_table_entry_bool(L, "madeby_u", ttmp->madeby_u); + switch (ttmp->ttyp) { + case SQKY_BOARD: + nhl_add_table_entry_int(L, "tnote", ttmp->tnote); + break; + case ROLLING_BOULDER_TRAP: + nhl_add_table_entry_int(L, "launchx", ttmp->launch.x); + nhl_add_table_entry_int(L, "launchy", ttmp->launch.y); + nhl_add_table_entry_int(L, "launch2x", ttmp->launch2.x); + nhl_add_table_entry_int(L, "launch2y", ttmp->launch2.y); + break; + case PIT: + case SPIKED_PIT: + nhl_add_table_entry_int(L, "conjoined", ttmp->conjoined); + break; + } + return 1; + } else { + nhl_error(L, "No trap at location"); + } + } else { + nhl_error(L, "Coordinates out of range"); + } return 0; } @@ -459,7 +462,7 @@ nhl_deltrap(lua_State *L) cvt_to_abscoord(&x, &y); if (isok(x, y)) { - struct trap *ttmp = t_at(x,y); + struct trap *ttmp = t_at(x, y); if (ttmp) deltrap(ttmp); @@ -517,74 +520,73 @@ nhl_getmap(lua_State *L) cvt_to_abscoord(&x, &y); if (isok(x, y)) { - char buf[BUFSZ]; - lua_newtable(L); + char buf[BUFSZ]; + lua_newtable(L); - /* FIXME: some should be boolean values */ - nhl_add_table_entry_int(L, "glyph", levl[x][y].glyph); - nhl_add_table_entry_int(L, "typ", levl[x][y].typ); - nhl_add_table_entry_str(L, "typ_name", - levltyp_to_name(levl[x][y].typ)); - Sprintf(buf, "%c", splev_typ2chr(levl[x][y].typ)); - nhl_add_table_entry_str(L, "mapchr", buf); - nhl_add_table_entry_int(L, "seenv", levl[x][y].seenv); - nhl_add_table_entry_bool(L, "horizontal", levl[x][y].horizontal); - nhl_add_table_entry_bool(L, "lit", levl[x][y].lit); - nhl_add_table_entry_bool(L, "waslit", levl[x][y].waslit); - nhl_add_table_entry_int(L, "roomno", levl[x][y].roomno); - nhl_add_table_entry_bool(L, "edge", levl[x][y].edge); - nhl_add_table_entry_bool(L, "candig", levl[x][y].candig); + /* FIXME: some should be boolean values */ + nhl_add_table_entry_int(L, "glyph", levl[x][y].glyph); + nhl_add_table_entry_int(L, "typ", levl[x][y].typ); + nhl_add_table_entry_str(L, "typ_name", + levltyp_to_name(levl[x][y].typ)); + Sprintf(buf, "%c", splev_typ2chr(levl[x][y].typ)); + nhl_add_table_entry_str(L, "mapchr", buf); + nhl_add_table_entry_int(L, "seenv", levl[x][y].seenv); + nhl_add_table_entry_bool(L, "horizontal", levl[x][y].horizontal); + nhl_add_table_entry_bool(L, "lit", levl[x][y].lit); + nhl_add_table_entry_bool(L, "waslit", levl[x][y].waslit); + nhl_add_table_entry_int(L, "roomno", levl[x][y].roomno); + nhl_add_table_entry_bool(L, "edge", levl[x][y].edge); + nhl_add_table_entry_bool(L, "candig", levl[x][y].candig); - nhl_add_table_entry_bool(L, "has_trap", t_at(x,y) ? 1 : 0); + nhl_add_table_entry_bool(L, "has_trap", t_at(x, y) ? 1 : 0); - /* TODO: FIXME: levl[x][y].flags */ + /* TODO: FIXME: levl[x][y].flags */ - lua_pushliteral(L, "flags"); - lua_newtable(L); + lua_pushliteral(L, "flags"); + lua_newtable(L); - if (IS_DOOR(levl[x][y].typ)) { - nhl_add_table_entry_bool(L, "nodoor", - (levl[x][y].flags == D_NODOOR)); - nhl_add_table_entry_bool(L, "broken", - (levl[x][y].flags & D_BROKEN)); - nhl_add_table_entry_bool(L, "isopen", - (levl[x][y].flags & D_ISOPEN)); - nhl_add_table_entry_bool(L, "closed", - (levl[x][y].flags & D_CLOSED)); - nhl_add_table_entry_bool(L, "locked", - (levl[x][y].flags & D_LOCKED)); - nhl_add_table_entry_bool(L, "trapped", - (levl[x][y].flags & D_TRAPPED)); - } else if (IS_ALTAR(levl[x][y].typ)) { - /* TODO: bits 0, 1, 2 */ - nhl_add_table_entry_bool(L, "shrine", - (levl[x][y].flags & AM_SHRINE)); - } else if (IS_THRONE(levl[x][y].typ)) { - nhl_add_table_entry_bool(L, "looted", - (levl[x][y].flags & T_LOOTED)); - } else if (levl[x][y].typ == TREE) { - nhl_add_table_entry_bool(L, "looted", - (levl[x][y].flags & TREE_LOOTED)); - nhl_add_table_entry_bool(L, "swarm", - (levl[x][y].flags & TREE_SWARM)); - } else if (IS_FOUNTAIN(levl[x][y].typ)) { - nhl_add_table_entry_bool(L, "looted", - (levl[x][y].flags & F_LOOTED)); - nhl_add_table_entry_bool(L, "warned", - (levl[x][y].flags & F_WARNED)); - } else if (IS_SINK(levl[x][y].typ)) { - nhl_add_table_entry_bool(L, "pudding", - (levl[x][y].flags & S_LPUDDING)); - nhl_add_table_entry_bool(L, "dishwasher", - (levl[x][y].flags & S_LDWASHER)); - nhl_add_table_entry_bool(L, "ring", - (levl[x][y].flags & S_LRING)); - } - /* TODO: drawbridges, walls, ladders, room=>ICED_xxx */ + if (IS_DOOR(levl[x][y].typ)) { + nhl_add_table_entry_bool(L, "nodoor", + (levl[x][y].flags == D_NODOOR)); + nhl_add_table_entry_bool(L, "broken", + (levl[x][y].flags & D_BROKEN)); + nhl_add_table_entry_bool(L, "isopen", + (levl[x][y].flags & D_ISOPEN)); + nhl_add_table_entry_bool(L, "closed", + (levl[x][y].flags & D_CLOSED)); + nhl_add_table_entry_bool(L, "locked", + (levl[x][y].flags & D_LOCKED)); + nhl_add_table_entry_bool(L, "trapped", + (levl[x][y].flags & D_TRAPPED)); + } else if (IS_ALTAR(levl[x][y].typ)) { + /* TODO: bits 0, 1, 2 */ + nhl_add_table_entry_bool(L, "shrine", + (levl[x][y].flags & AM_SHRINE)); + } else if (IS_THRONE(levl[x][y].typ)) { + nhl_add_table_entry_bool(L, "looted", + (levl[x][y].flags & T_LOOTED)); + } else if (levl[x][y].typ == TREE) { + nhl_add_table_entry_bool(L, "looted", + (levl[x][y].flags & TREE_LOOTED)); + nhl_add_table_entry_bool(L, "swarm", + (levl[x][y].flags & TREE_SWARM)); + } else if (IS_FOUNTAIN(levl[x][y].typ)) { + nhl_add_table_entry_bool(L, "looted", + (levl[x][y].flags & F_LOOTED)); + nhl_add_table_entry_bool(L, "warned", + (levl[x][y].flags & F_WARNED)); + } else if (IS_SINK(levl[x][y].typ)) { + nhl_add_table_entry_bool(L, "pudding", + (levl[x][y].flags & S_LPUDDING)); + nhl_add_table_entry_bool(L, "dishwasher", + (levl[x][y].flags & S_LDWASHER)); + nhl_add_table_entry_bool(L, "ring", (levl[x][y].flags & S_LRING)); + } + /* TODO: drawbridges, walls, ladders, room=>ICED_xxx */ - lua_settable(L, -3); + lua_settable(L, -3); - return 1; + return 1; } else { /* TODO: return zerorm instead? */ nhl_error(L, "Coordinates out of range"); @@ -696,7 +698,7 @@ nhl_getlin(lua_State *L) static int nhl_menu(lua_State *L) { - static const char *const pickX[] = {"none", "one", "any"}; /* PICK_x */ + static const char *const pickX[] = { "none", "one", "any" }; /* PICK_x */ int argc = lua_gettop(L); const char *prompt; const char *defval = ""; @@ -750,7 +752,8 @@ nhl_menu(lua_State *L) any.a_char = key[0]; add_menu(tmpwin, &nul_glyphinfo, &any, 0, 0, ATR_NONE, clr, str, (*defval && *key && defval[0] == key[0]) - ? MENU_ITEMFLAGS_SELECTED : MENU_ITEMFLAGS_NONE); + ? MENU_ITEMFLAGS_SELECTED + : MENU_ITEMFLAGS_NONE); lua_pop(L, 1); /* removes 'value'; keeps 'key' for next iteration */ } @@ -763,8 +766,8 @@ nhl_menu(lua_State *L) char buf[2]; buf[0] = picks[0].item.a_char; - if (pick == PICK_ONE && pick_cnt > 1 - && *defval && defval[0] == picks[0].item.a_char) + if (pick == PICK_ONE && pick_cnt > 1 && *defval + && defval[0] == picks[0].item.a_char) buf[0] = picks[1].item.a_char; buf[1] = '\0'; @@ -919,7 +922,8 @@ nhl_random(lua_State *L) if (argc == 1) lua_pushinteger(L, rn2((int) luaL_checkinteger(L, 1))); else if (argc == 2) - lua_pushinteger(L, luaL_checkinteger(L, 1) + rn2((int) luaL_checkinteger(L, 2))); + lua_pushinteger(L, luaL_checkinteger(L, 1) + + rn2((int) luaL_checkinteger(L, 2))); else nhl_error(L, "Wrong args"); @@ -933,8 +937,7 @@ nhl_level_difficulty(lua_State *L) int argc = lua_gettop(L); if (argc == 0) { lua_pushinteger(L, level_difficulty()); - } - else { + } else { nhl_error(L, "level_difficulty should not have any args"); } return 1; @@ -1015,7 +1018,7 @@ get_table_boolean(lua_State *L, const char *name) ret = lua_toboolean(L, -1); } else if (ltyp == LUA_TNUMBER) { ret = (int) luaL_checkinteger(L, -1); - if ( ret < 0 || ret > 1) + if (ret < 0 || ret > 1) ret = -1; } lua_pop(L, 1); @@ -1188,7 +1191,8 @@ get_nh_lua_variables(void) lua_getglobal(gl.luacore, "get_variables_string"); if (lua_type(gl.luacore, -1) == LUA_TFUNCTION) { - if (nhl_pcall_handle(gl.luacore, 0, 1, "get_nh_lua_variables", NHLpa_impossible)) { + if (nhl_pcall_handle(gl.luacore, 0, 1, "get_nh_lua_variables", + NHLpa_impossible)) { return key; } key = dupstr(lua_tostring(gl.luacore, -1)); @@ -1242,7 +1246,6 @@ nhl_stairways(lua_State *L) lua_newtable(L); while (tmp) { - lua_pushinteger(L, i); lua_newtable(L); @@ -1630,53 +1633,53 @@ tutorial(boolean entering) } static const struct luaL_Reg nhl_functions[] = { - {"test", nhl_test}, + { "test", nhl_test }, - {"getmap", nhl_getmap}, + { "getmap", nhl_getmap }, #if 0 - {"setmap", nhl_setmap}, + { "setmap", nhl_setmap }, #endif - {"gettrap", nhl_gettrap}, - {"deltrap", nhl_deltrap}, + { "gettrap", nhl_gettrap }, + { "deltrap", nhl_deltrap }, - {"has_timer_at", nhl_timer_has_at}, - {"peek_timer_at", nhl_timer_peek_at}, - {"stop_timer_at", nhl_timer_stop_at}, - {"start_timer_at", nhl_timer_start_at}, + { "has_timer_at", nhl_timer_has_at }, + { "peek_timer_at", nhl_timer_peek_at }, + { "stop_timer_at", nhl_timer_stop_at }, + { "start_timer_at", nhl_timer_start_at }, - {"abscoord", nhl_abs_coord}, + { "abscoord", nhl_abs_coord }, - {"impossible", nhl_impossible}, - {"pline", nhl_pline}, - {"verbalize", nhl_verbalize}, - {"menu", nhl_menu}, - {"text", nhl_text}, - {"getlin", nhl_getlin}, - {"eckey", nhl_get_cmd_key}, - {"callback", nhl_callback}, - {"gamestate", nhl_gamestate}, + { "impossible", nhl_impossible }, + { "pline", nhl_pline }, + { "verbalize", nhl_verbalize }, + { "menu", nhl_menu }, + { "text", nhl_text }, + { "getlin", nhl_getlin }, + { "eckey", nhl_get_cmd_key }, + { "callback", nhl_callback }, + { "gamestate", nhl_gamestate }, - {"makeplural", nhl_makeplural}, - {"makesingular", nhl_makesingular}, - {"s_suffix", nhl_s_suffix}, - {"ing_suffix", nhl_ing_suffix}, - {"an", nhl_an}, - {"rn2", nhl_rn2}, - {"random", nhl_random}, - {"level_difficulty", nhl_level_difficulty}, - {"parse_config", nhl_parse_config}, - {"get_config", nhl_get_config}, - {"get_config_errors", l_get_config_errors}, + { "makeplural", nhl_makeplural }, + { "makesingular", nhl_makesingular }, + { "s_suffix", nhl_s_suffix }, + { "ing_suffix", nhl_ing_suffix }, + { "an", nhl_an }, + { "rn2", nhl_rn2 }, + { "random", nhl_random }, + { "level_difficulty", nhl_level_difficulty }, + { "parse_config", nhl_parse_config }, + { "get_config", nhl_get_config }, + { "get_config_errors", l_get_config_errors }, #ifdef DUMPLOG - {"dump_fmtstr", nhl_dump_fmtstr}, + { "dump_fmtstr", nhl_dump_fmtstr }, #endif /* DUMPLOG */ - {"dnum_name", nhl_dnum_name}, - {"variable", nhl_variable}, - {"stairways", nhl_stairways}, - {"pushkey", nhl_pushkey}, - {"doturn", nhl_doturn}, - {"debug_flags", nhl_debug_flags}, - {NULL, NULL} + { "dnum_name", nhl_dnum_name }, + { "variable", nhl_variable }, + { "stairways", nhl_stairways }, + { "pushkey", nhl_pushkey }, + { "doturn", nhl_doturn }, + { "debug_flags", nhl_debug_flags }, + { NULL, NULL } }; static const struct { @@ -1686,9 +1689,9 @@ static const struct { { "COLNO", COLNO }, { "ROWNO", ROWNO }, #ifdef DLB - { "DLB", 1}, + { "DLB", 1 }, #else - { "DLB", 0}, + { "DLB", 0 }, #endif /* DLB */ { NULL, 0 }, }; @@ -1716,13 +1719,16 @@ nhl_push_anything(lua_State *L, int anytype, void *src) anything any = cg.zeroany; switch (anytype) { - case ANY_INT: any.a_int = *(int *) src; + case ANY_INT: + any.a_int = *(int *) src; lua_pushinteger(L, any.a_int); break; - case ANY_UCHAR: any.a_uchar = *(uchar *) src; + case ANY_UCHAR: + any.a_uchar = *(uchar *) src; lua_pushinteger(L, any.a_uchar); break; - case ANY_SCHAR: any.a_schar = *(schar *) src; + case ANY_SCHAR: + any.a_schar = *(schar *) src; lua_pushinteger(L, any.a_schar); break; } @@ -1757,7 +1763,7 @@ nhl_meta_u_index(lua_State *L) { "mhmax", &(u.mhmax), ANY_INT }, { "mtimedone", &(u.mtimedone), ANY_INT }, { "dlevel", &(u.uz.dlevel), ANY_SCHAR }, /* actually coordxy */ - { "dnum", &(u.uz.dnum), ANY_SCHAR }, /* actually coordxy */ + { "dnum", &(u.uz.dnum), ANY_SCHAR }, /* actually coordxy */ { "uluck", &(u.uluck), ANY_SCHAR }, { "uhp", &(u.uhp), ANY_INT }, { "uhpmax", &(u.uhpmax), ANY_INT }, @@ -1880,19 +1886,20 @@ nhl_pcall(lua_State *L, int nargs, int nresults, const char *name) lua_insert(L, 1); (void) lua_getallocf(L, (void **) &nud); #ifdef NHL_SANDBOX - if(nud && name){ + if (nud && name) { nud->name = name; } /* NB: We don't need to deal with nud->memlimit - Lua handles that. */ if (nud && (nud->steps || nud->perpcall)) { - if (nud->perpcall){ + if (nud->perpcall) { nud->steps = nud->perpcall; nud->statctr = 0; } if (setjmp(nud->jb)) { /* panic, because we don't know if the game state is corrupt */ - /* XXX can we get a lua stack trace as well? */ - panic("Lua time exceeded %d:%s",nud->sid,nud->name?nud->name:"(unknown)"); + /* XXX can we get a lua stack trace as well? */ + panic("Lua time exceeded %d:%s", nud->sid, + nud->name ? nud->name : "(unknown)"); } } #endif @@ -1901,17 +1908,16 @@ nhl_pcall(lua_State *L, int nargs, int nresults, const char *name) lua_remove(L, 1); /* remove handler */ - #ifdef NHL_SANDBOX - if(nud && nud->perpcall && gl.loglua){ - long ic = nud->statctr*NHL_SB_STEPSIZE; // an approximation - livelog_printf(LL_DEBUG, "LUASTATS PCAL %d:%s %ld", - nud->sid,nud->name,ic); + if (nud && nud->perpcall && gl.loglua) { + long ic = nud->statctr * NHL_SB_STEPSIZE; // an approximation + livelog_printf(LL_DEBUG, "LUASTATS PCAL %d:%s %ld", nud->sid, + nud->name, ic); } - if(nud && nud->memlimit && gl.loglua){ + if (nud && nud->memlimit && gl.loglua) { lua_gc(L, LUA_GCCOLLECT); - livelog_printf(LL_DEBUG, "LUASTATS PMEM %d:%s %lu", - nud->sid,nud->name,(long unsigned)nud->inuse); + livelog_printf(LL_DEBUG, "LUASTATS PMEM %d:%s %lu", nud->sid, + nud->name, (long unsigned) nud->inuse); } #endif return rv; @@ -1919,21 +1925,22 @@ nhl_pcall(lua_State *L, int nargs, int nresults, const char *name) int nhl_pcall_handle(lua_State *L, int nargs, int nresults, const char *name, - NHL_pcall_action npa -){ + NHL_pcall_action npa) +{ int rv = nhl_pcall(L, nargs, nresults, name); - if(rv){ - nhl_user_data *nud; - (void)lua_getallocf(L, (void**)&nud); - /* XXX can we get a lua stack trace as well? */ - switch(npa){ - case NHLpa_panic: - panic("Lua error %d:%s %s", nud->sid, - nud->name?nud->name:"(unknown)", lua_tostring(L, -1)); - case NHLpa_impossible: - impossible("Lua error: %d:%s %s", nud->sid, - nud->name?nud->name:"(unknown)", lua_tostring(L, -1)); - } + if (rv) { + nhl_user_data *nud; + (void) lua_getallocf(L, (void **) &nud); + /* XXX can we get a lua stack trace as well? */ + switch (npa) { + case NHLpa_panic: + panic("Lua error %d:%s %s", nud->sid, + nud->name ? nud->name : "(unknown)", lua_tostring(L, -1)); + case NHLpa_impossible: + impossible("Lua error: %d:%s %s", nud->sid, + nud->name ? nud->name : "(unknown)", + lua_tostring(L, -1)); + } } return rv; } @@ -2029,8 +2036,8 @@ nhl_loadlua(lua_State *L, const char *fname) llret = luaL_loadbuffer(L, buf, strlen(buf), altfname); if (llret != LUA_OK) { - impossible("luaL_loadbuffer: Error loading %s: %s", - altfname, lua_tostring(L, -1)); + impossible("luaL_loadbuffer: Error loading %s: %s", altfname, + lua_tostring(L, -1)); ret = FALSE; goto give_up; } else { @@ -2063,12 +2070,12 @@ nhl_init(nhl_sandbox_info *sbi) #ifdef NHL_SANDBOX if (NHL_VERSION_EXPECTED != LUA_VERSION_RELEASE_NUM) { panic( - "sandbox doesn't know this Lua version: this=%d != expected=%d ", - LUA_VERSION_RELEASE_NUM, NHL_VERSION_EXPECTED); + "sandbox doesn't know this Lua version: this=%d != expected=%d ", + LUA_VERSION_RELEASE_NUM, NHL_VERSION_EXPECTED); } #endif - lua_State *L = nhlL_newstate(sbi,"nhl_init"); + lua_State *L = nhlL_newstate(sbi, "nhl_init"); iflags.in_lua = TRUE; /* Temporary for development XXX */ @@ -2123,22 +2130,22 @@ void nhl_done(lua_State *L) { if (L) { - nhl_user_data *nud = 0; - (void)lua_getallocf(L, (void**)&nud); - if(gl.loglua){ - if(nud && nud->osteps){ - long ic = nud->statctr*NHL_SB_STEPSIZE; // an approximation - livelog_printf(LL_DEBUG, "LUASTATS DONE %d:%s %ld", - nud->sid, nud->name,ic); + nhl_user_data *nud = 0; + (void) lua_getallocf(L, (void **) &nud); + if (gl.loglua) { + if (nud && nud->osteps) { + long ic = nud->statctr * NHL_SB_STEPSIZE; // an approximation + livelog_printf(LL_DEBUG, "LUASTATS DONE %d:%s %ld", nud->sid, + nud->name, ic); } - if(nud && nud->memlimit && !nud->perpcall){ + if (nud && nud->memlimit && !nud->perpcall) { lua_gc(L, LUA_GCCOLLECT); - livelog_printf(LL_DEBUG, "LUASTATS DMEM %d:%s %lu", - nud->sid, nud->name,(long unsigned)nud->inuse); + livelog_printf(LL_DEBUG, "LUASTATS DMEM %d:%s %lu", nud->sid, + nud->name, (long unsigned) nud->inuse); } } - if(nud) - nhl_alloc(NULL, nud, 0, 0); // free nud + if (nud) + nhl_alloc(NULL, nud, 0, 0); // free nud lua_close(L); } iflags.in_lua = FALSE; @@ -2171,7 +2178,8 @@ DISABLE_WARNING_CONDEXPR_IS_CONSTANT const char * get_lua_version(void) { - nhl_sandbox_info sbi = {NHL_SB_VERSION, 1*1024*1024, 0, 1*1024*1024}; + nhl_sandbox_info sbi = { NHL_SB_VERSION, 1 * 1024 * 1024, 0, + 1 * 1024 * 1024 }; if (gl.lua_ver[0] == 0) { lua_State *L = nhl_init(&sbi); @@ -2186,7 +2194,7 @@ get_lua_version(void) get set up as a lua global */ lua_getglobal(L, "_RELEASE"); if (lua_isstring(L, -1)) - vs = lua_tolstring (L, -1, &len); + vs = lua_tolstring(L, -1, &len); #ifdef LUA_RELEASE else vs = LUA_RELEASE, len = strlen(vs); @@ -2194,7 +2202,7 @@ get_lua_version(void) if (!vs) { lua_getglobal(L, "_VERSION"); if (lua_isstring(L, -1)) - vs = lua_tolstring (L, -1, &len); + vs = lua_tolstring(L, -1, &len); #ifdef LUA_VERSION else vs = LUA_VERSION, len = strlen(vs); @@ -2253,52 +2261,52 @@ struct e { /* NHL_BASE_BASE - safe things */ static struct e ct_base_base[] = { - {IFFLAG, "ipairs"}, - {IFFLAG, "next"}, - {IFFLAG, "pairs"}, - {IFFLAG, "pcall"}, - {IFFLAG, "select"}, - {IFFLAG, "tonumber"}, - {IFFLAG, "tostring"}, - {IFFLAG, "type"}, - {IFFLAG, "xpcall"}, - {EOT, NULL} + { IFFLAG, "ipairs" }, + { IFFLAG, "next" }, + { IFFLAG, "pairs" }, + { IFFLAG, "pcall" }, + { IFFLAG, "select" }, + { IFFLAG, "tonumber" }, + { IFFLAG, "tostring" }, + { IFFLAG, "type" }, + { IFFLAG, "xpcall" }, + { EOT, NULL } }; /* NHL_BASE_ERROR - not really safe - might not want Lua to kill the process */ static struct e ct_base_error[] = { - {IFFLAG, "assert"}, /* ok, calls error */ - {IFFLAG, "error"}, /* ok, calls G->panic */ - {NEVER, "print"}, /*not ok - calls lua_writestring/lua_writeline -> stdout*/ - {NEVER, "warn"}, /*not ok - calls lua_writestringerror -> stderr*/ - {EOT, NULL} + { IFFLAG, "assert" }, /* ok, calls error */ + { IFFLAG, "error" }, /* ok, calls G->panic */ + { NEVER, "print" }, /*not ok - calls lua_writestring/lua_writeline -> stdout*/ + { NEVER, "warn" }, /*not ok - calls lua_writestringerror -> stderr*/ + { EOT, NULL } }; /* NHL_BASE_META - metatable access */ static struct e ct_base_meta[] = { - {IFFLAG, "getmetatable"}, - {IFFLAG, "rawequal"}, - {IFFLAG, "rawget"}, - {IFFLAG, "rawlen"}, - {IFFLAG, "rawset"}, - {IFFLAG, "setmetatable"}, - {EOT, NULL} + { IFFLAG, "getmetatable" }, + { IFFLAG, "rawequal" }, + { IFFLAG, "rawget" }, + { IFFLAG, "rawlen" }, + { IFFLAG, "rawset" }, + { IFFLAG, "setmetatable" }, + { EOT, NULL } }; /* NHL_BASE_GC - questionable safety */ static struct e ct_base_iffy[] = { - {IFFLAG, "collectgarbage"}, - {EOT, NULL} + { IFFLAG, "collectgarbage" }, + { EOT, NULL } }; /* NHL_BASE_UNSAFE - include only if required */ /* TODO: if NHL_BASE_UNSAFE is ever used, we need to wrap lua_load with * something to forbid mode=="b" */ static struct e ct_base_unsafe[] = { - {IFFLAG, "dofile"}, - {IFFLAG, "loadfile"}, - {IFFLAG, "load"}, - {EOT, NULL} + { IFFLAG, "dofile" }, + { IFFLAG, "loadfile" }, + { IFFLAG, "load" }, + { EOT, NULL } }; /* no ct_co_ tables; all fns at same level of concern */ @@ -2310,47 +2318,47 @@ static struct e ct_base_unsafe[] = { /* possible ct_debug tables - likely to need changes */ static struct e ct_debug_debug[] = { - {NEVER, "debug"}, /* uses normal I/O so needs re-write */ - {IFFLAG, "getuservalue"}, - {NEVER, "gethook"}, /* see sethook */ - {IFFLAG, "getinfo"}, - {IFFLAG, "getlocal"}, - {IFFLAG, "getregistry"}, - {IFFLAG, "getmetatable"}, - {IFFLAG, "getupvalue"}, - {IFFLAG, "upvaluejoin"}, - {IFFLAG, "upvalueid"}, - {IFFLAG, "setuservalue"}, - {NEVER, "sethook"}, /* used for memory and step limits */ - {IFFLAG, "setlocal"}, - {IFFLAG, "setmetatable"}, - {IFFLAG, "setupvalue"}, - {IFFLAG, "setcstacklimit"}, - {EOT, NULL} + { NEVER, "debug" }, /* uses normal I/O so needs re-write */ + { IFFLAG, "getuservalue" }, + { NEVER, "gethook" }, /* see sethook */ + { IFFLAG, "getinfo" }, + { IFFLAG, "getlocal" }, + { IFFLAG, "getregistry" }, + { IFFLAG, "getmetatable" }, + { IFFLAG, "getupvalue" }, + { IFFLAG, "upvaluejoin" }, + { IFFLAG, "upvalueid" }, + { IFFLAG, "setuservalue" }, + { NEVER, "sethook" }, /* used for memory and step limits */ + { IFFLAG, "setlocal" }, + { IFFLAG, "setmetatable" }, + { IFFLAG, "setupvalue" }, + { IFFLAG, "setcstacklimit" }, + { EOT, NULL } }; static struct e ct_debug_safe[] = { - {IFFLAG, "traceback"}, - {EOT, NULL} + { IFFLAG, "traceback" }, + { EOT, NULL } }; /* possible ct_os_ tables */ static struct e ct_os_time[] = { - {IFFLAG, "clock"}, /* is this portable? XXX */ - {IFFLAG, "date"}, - {IFFLAG, "difftime"}, - {IFFLAG, "time"}, - {EOT, NULL} + { IFFLAG, "clock" }, /* is this portable? XXX */ + { IFFLAG, "date" }, + { IFFLAG, "difftime" }, + { IFFLAG, "time" }, + { EOT, NULL } }; static struct e ct_os_files[] = { - {NEVER, "execute"}, /* not portable */ - {NEVER, "exit"}, - {NEVER, "getenv"}, - {IFFLAG, "remove"}, - {IFFLAG, "rename"}, - {NEVER, "setlocale"}, - {NEVER, "tmpname"}, - {EOT, NULL} + { NEVER, "execute" }, /* not portable */ + { NEVER, "exit" }, + { NEVER, "getenv" }, + { IFFLAG, "remove" }, + { IFFLAG, "rename" }, + { NEVER, "setlocale" }, + { NEVER, "tmpname" }, + { EOT, NULL } }; @@ -2412,17 +2420,18 @@ static boolean start_luapat(void) { int rv; -/* XXX set memory and step limits */ - nhl_sandbox_info sbi = {NHL_SB_STRING, 0, 0, 0}; + /* XXX set memory and step limits */ + nhl_sandbox_info sbi = { NHL_SB_STRING, 0, 0, 0 }; if ((luapat = nhl_init(&sbi)) == NULL) return FALSE; /* load a pattern matching function */ - rv = luaL_loadstring(luapat, - "function matches(s,p) return not not stringm.match(s,p) end"); + rv = luaL_loadstring( + luapat, + "function matches(s,p) return not not stringm.match(s,p) end"); if (rv != LUA_OK) { - panic("start_luapat: %d",rv); + panic("start_luapat: %d", rv); } return TRUE; } @@ -2556,7 +2565,7 @@ hooked_open(lua_State *L) return NHL_SBRV_DENY; /* default to "no" */ doopen: - lua_settop(L, params+1); + lua_settop(L, params + 1); return (*io_open)(L); } @@ -2821,14 +2830,15 @@ nhlL_newstate(nhl_sandbox_info *sbi, const char *name) NHL_ALLOC_ADJUST(sz); nud->inuse = sz; - if(name){ + if (name) { nud->name = name; } nud->sid = ++gl.lua_sid; } lua_State *L = lua_newstate(nhl_alloc, nud); - if(!L)panic("NULL lua_newstate"); + if (!L) + panic("NULL lua_newstate"); lua_atpanic(L, nhl_panic); #if LUA_VERSION_NUM == 504