From 16e2bf6d4c6cca62e8724cccffc57d4caf2f0c94 Mon Sep 17 00:00:00 2001 From: void <> Date: Wed, 29 Jan 2025 13:57:16 +0000 Subject: [PATCH 1/2] (build) last round of c23 warnings FossilOrigin-Name: f9fcc85925cd226f1799011265a92a81fa19128da66e45d3b259ca1084e9883f --- src/engine/alt/nbio.c | 4 ++-- src/engine/alt/support.h | 4 ++-- src/engine/arcan_frameserver.c | 2 +- src/engine/arcan_lua.c | 4 ++-- src/frameserver/terminal/default/cli_lua.c | 6 ++++-- src/shmif/tui/lua/tui_lua.c | 2 +- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/engine/alt/nbio.c b/src/engine/alt/nbio.c index bdb0502a0..5d7d72fbc 100644 --- a/src/engine/alt/nbio.c +++ b/src/engine/alt/nbio.c @@ -866,7 +866,7 @@ int alt_nbio_process_read( } } -lua_Number luaL_optbnumber(lua_State* L, int narg, lua_Number opt) +bool luaL_optbnumber(lua_State* L, int narg, lua_Number opt) { if (lua_isnumber(L, narg)) return lua_tonumber(L, narg); @@ -876,7 +876,7 @@ lua_Number luaL_optbnumber(lua_State* L, int narg, lua_Number opt) return opt; } -lua_Number luaL_checkbnumber(lua_State* L, int narg) +bool luaL_checkbnumber(lua_State* L, int narg) { lua_Number d = lua_tonumber(L, narg); if (d == 0 && !lua_isnumber(L, narg)){ diff --git a/src/engine/alt/support.h b/src/engine/alt/support.h index 4222eb4bb..1ad225d47 100644 --- a/src/engine/alt/support.h +++ b/src/engine/alt/support.h @@ -113,8 +113,8 @@ static void set_tblbool(lua_State* ctx, char* k, bool v, int top, size_t k_sz) /* a type-cohersion variant that accepts both bool and if (0) style * argument passing for functions. */ -lua_Number luaL_checkbnumber(lua_State* L, int narg); -lua_Number luaL_optbnumber(lua_State* L, int narg, lua_Number opt); +bool luaL_checkbnumber(lua_State* L, int narg); +bool luaL_optbnumber(lua_State* L, int narg, lua_Number opt); /* used as a lua_call wrapper that provides different error handling, ... */ void alt_call(lua_State*, diff --git a/src/engine/arcan_frameserver.c b/src/engine/arcan_frameserver.c index fcc62396f..9e29ced76 100644 --- a/src/engine/arcan_frameserver.c +++ b/src/engine/arcan_frameserver.c @@ -135,7 +135,7 @@ arcan_errc arcan_frameserver_free(arcan_frameserver* src) arcan_renderfun_release_fontgroup(src->desc.text.group); src->desc.text.group = NULL; - char msg[32]; + char msg[36]; if (src->cookie_fail) snprintf(msg, COUNT_OF(msg), "Integrity cookie mismatch"); diff --git a/src/engine/arcan_lua.c b/src/engine/arcan_lua.c index f1ac60f93..595b1d962 100644 --- a/src/engine/arcan_lua.c +++ b/src/engine/arcan_lua.c @@ -1076,8 +1076,8 @@ static int debugstall(lua_State* ctx) if (tn <= 0) unsetenv("ARCAN_FRAMESERVER_DEBUGSTALL"); else{ - char buf[4]; - snprintf(buf, 4, "%4d", tn); + char buf[5]; + snprintf(buf, 5, "%4d", tn); setenv("ARCAN_FRAMESERVER_DEBUGSTALL", buf, 1); } diff --git a/src/frameserver/terminal/default/cli_lua.c b/src/frameserver/terminal/default/cli_lua.c index 4a6138378..0fb1a1a3c 100644 --- a/src/frameserver/terminal/default/cli_lua.c +++ b/src/frameserver/terminal/default/cli_lua.c @@ -8,7 +8,9 @@ #include #include "tui_lua.h" -#include "lash.h" +static char lash_lua[] = { +#embed "lash.lua" +}; /* * notes: @@ -170,7 +172,7 @@ int arcterm_luacli_run(struct arcan_shmif_cont* shmif, struct arg_arr* args) lua_remove(lua, -2); /* parse-run builtin script */ - if (0 != luaL_loadbuffer(lua, (const char*) lash_lua, lash_lua_len, "lash")){ + if (0 != luaL_loadbuffer(lua, lash_lua, sizeof(lash_lua), "lash")){ const char* msg = lua_tostring(lua, -1); if (isatty(STDOUT_FILENO)){ fprintf(stdout, "lua_cli failed: %s", msg); diff --git a/src/shmif/tui/lua/tui_lua.c b/src/shmif/tui/lua/tui_lua.c index a62ae86ec..bb3d4f665 100644 --- a/src/shmif/tui/lua/tui_lua.c +++ b/src/shmif/tui/lua/tui_lua.c @@ -279,7 +279,7 @@ static void init_lmeta(lua_State* L, struct tui_lmeta* l, struct tui_lmeta* p) lua_setmetatable(L, -2); } -static lua_Number luaL_optbnumber(lua_State* L, int narg, lua_Number opt) +static bool luaL_optbnumber(lua_State* L, int narg, lua_Number opt) { if (lua_isnumber(L, narg)) return lua_tonumber(L, narg); From e5b35b23cd405e487d2c78d3562daad6d12b0fce Mon Sep 17 00:00:00 2001 From: void <> Date: Fri, 31 Jan 2025 21:44:41 +0000 Subject: [PATCH 2/2] (lua) don't try to dump stack-index 0, always provide L to monitor FossilOrigin-Name: af189a7e576f8a6b1c920fe8f6af06a7681bb10add9f47dd8244e058894e02a9 --- src/engine/alt/trace.c | 2 +- src/engine/arcan_monitor.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/engine/alt/trace.c b/src/engine/alt/trace.c index 3753d3fc2..45abbce79 100644 --- a/src/engine/alt/trace.c +++ b/src/engine/alt/trace.c @@ -145,7 +145,7 @@ void alt_trace_dumptable_raw(lua_State* L, int ofs, int cap, FILE* out) void alt_trace_dumpstack_raw(lua_State* L, FILE* out) { int top = lua_gettop(L); - while (top >= 0){ + while (top > 0){ fprintf(out, "type=stack:index=%d:name=%d:var", top, top); alt_trace_print_type(L, top, "\n", out); top--; diff --git a/src/engine/arcan_monitor.c b/src/engine/arcan_monitor.c index acea1856f..7326acf76 100644 --- a/src/engine/arcan_monitor.c +++ b/src/engine/arcan_monitor.c @@ -978,6 +978,7 @@ void arcan_monitor_finish(bool ok) arcan_monitor_watchdog(NULL, NULL); } +extern struct arcan_luactx* main_lua_context; void arcan_monitor_tick(int n) { static size_t count; @@ -988,7 +989,8 @@ void arcan_monitor_tick(int n) .events = POLLIN }; if (1 == poll(&pfd, 1, 0)){ - arcan_monitor_watchdog(NULL, NULL); + arcan_monitor_watchdog( + (lua_State*)main_lua_context, NULL); } }