make lua work on return

This commit is contained in:
2025-12-22 15:03:12 +01:00
parent f2dcf8563c
commit 1a747d9264
2 changed files with 18 additions and 25 deletions
+11 -15
View File
@@ -1,15 +1,11 @@
cmd_output = "" -- if type(cmd) == "string" then
-- if cmd:sub(1, 3) == "PI=" then
if type(cmd) == "string" then -- local hex = cmd:sub(7)
if cmd:sub(1, 3) == "PI=" then -- local pi = tonumber(hex, 16)
local hex = cmd:sub(7) -- if (pi & 0xf000) == 0 then return "-" end
local pi = tonumber(hex, 16) -- if pi then
-- set_rds_pi(pi)
if pi then -- return "+"
set_rds_pi(pi) -- end
cmd_output = string.format("+", pi) -- end
else -- end
cmd_output = "Invalid hex PI"
end
end
end
+7 -10
View File
@@ -24,20 +24,17 @@ void run_lua(char *str, char *cmd_output) {
char path[128]; char path[128];
snprintf(path, sizeof(path), "%s/.rds95.command.lua", getenv("HOME")); snprintf(path, sizeof(path), "%s/.rds95.command.lua", getenv("HOME"));
if (luaL_dofile(L, path) != LUA_OK) { if (luaL_loadfilex(L, path, NULL) == LUA_OK && lua_pcall(L, 0, 1, 0) == LUA_OK) {
if (lua_isstring(L, -1)) {
const char * message = lua_tostring(L, -1);
if(cmd_output) strcpy(cmd_output, message);
}
lua_pop(L, 1);
} else {
const char *err = lua_tostring(L, -1); const char *err = lua_tostring(L, -1);
fprintf(stderr, "Lua error: %s\n", err); fprintf(stderr, "Lua error: %s\n", err);
lua_pop(L, 1); lua_pop(L, 1);
lua_settop(L, top); lua_settop(L, top);
return;
}
lua_getglobal(L, "cmd_output");
if (lua_isstring(L, -1)) {
const char * message = lua_tostring(L, -1);
lua_pop(L, 1);
if(cmd_output) strcpy(cmd_output, message);
} }
} }