diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-04-28 15:56:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-28 15:56:07 +0100 |
| commit | 98fbbafef78057c818fb02b15c27e38ad2f5b5bc (patch) | |
| tree | c62aa1eae704e7595d58f7edeb3804e8bfd0099d /src/config/lua/bindings/LuaBindingsToplevel.cpp | |
| parent | d4c6ff434c5c7aa66bc7c28e5ce336d2a694bfcc (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.cpp | 14 |
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) { |
