mirror of
https://github.com/radio95-rnt/rds95.git
synced 2026-02-26 20:33:53 +01:00
make lua work on return
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
cmd_output = ""
|
||||
|
||||
if type(cmd) == "string" then
|
||||
if cmd:sub(1, 3) == "PI=" then
|
||||
local hex = cmd:sub(7)
|
||||
local pi = tonumber(hex, 16)
|
||||
|
||||
if pi then
|
||||
set_rds_pi(pi)
|
||||
cmd_output = string.format("+", pi)
|
||||
else
|
||||
cmd_output = "Invalid hex PI"
|
||||
end
|
||||
end
|
||||
end
|
||||
-- if type(cmd) == "string" then
|
||||
-- if cmd:sub(1, 3) == "PI=" then
|
||||
-- local hex = cmd:sub(7)
|
||||
-- local pi = tonumber(hex, 16)
|
||||
-- if (pi & 0xf000) == 0 then return "-" end
|
||||
-- if pi then
|
||||
-- set_rds_pi(pi)
|
||||
-- return "+"
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
@@ -24,20 +24,17 @@ void run_lua(char *str, char *cmd_output) {
|
||||
|
||||
char path[128];
|
||||
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);
|
||||
fprintf(stderr, "Lua error: %s\n", err);
|
||||
lua_pop(L, 1);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user