summaryrefslogtreecommitdiff
path: root/src/config/lua/bindings/LuaBindingsToplevel.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-28 15:56:07 +0100
committerGitHub <noreply@github.com>2026-04-28 15:56:07 +0100
commit98fbbafef78057c818fb02b15c27e38ad2f5b5bc (patch)
treec62aa1eae704e7595d58f7edeb3804e8bfd0099d /src/config/lua/bindings/LuaBindingsToplevel.cpp
parentd4c6ff434c5c7aa66bc7c28e5ce336d2a694bfcc (diff)
config/errors: Report and categorize errors properly for actions (#14192)
Makes all errors categorized, some not displayed, some displayed. All errors can be obtained after hl.dispatch()
Diffstat (limited to 'src/config/lua/bindings/LuaBindingsToplevel.cpp')
-rw-r--r--src/config/lua/bindings/LuaBindingsToplevel.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/config/lua/bindings/LuaBindingsToplevel.cpp b/src/config/lua/bindings/LuaBindingsToplevel.cpp
index d099c0a8..afd9337c 100644
--- a/src/config/lua/bindings/LuaBindingsToplevel.cpp
+++ b/src/config/lua/bindings/LuaBindingsToplevel.cpp
@@ -287,17 +287,23 @@ static int hlDispatch(lua_State* L) {
lua_pushvalue(L, 1);
int status = LUA_OK;
if (auto* mgr = CConfigManager::fromLuaState(L); mgr)
- status = mgr->guardedPCall(0, 0, 0, CConfigManager::LUA_TIMEOUT_DISPATCH_MS, "hl.dispatch");
+ status = mgr->guardedPCall(0, 1, 0, CConfigManager::LUA_TIMEOUT_DISPATCH_MS, "hl.dispatch");
else
- status = lua_pcall(L, 0, 0, 0);
+ status = lua_pcall(L, 0, 1, 0);
if (status != LUA_OK) {
const char* err = lua_tostring(L, -1);
lua_pop(L, 1);
- return Internal::configError(L, "hl.dispatch: {}", err ? err : "unknown error");
+ return Internal::dispatcherError(L, std::format("hl.dispatch: {}", err ? err : "unknown error"), Config::Actions::eActionErrorLevel::ERROR,
+ Config::Actions::eActionErrorCode::LUA_ERROR);
}
- return 0;
+ if (lua_isnil(L, -1)) {
+ lua_pop(L, 1);
+ return Internal::pushSuccessResult(L);
+ }
+
+ return 1;
}
static int hlOn(lua_State* L) {