From: Aki Tuomi Date: Fri, 16 Apr 2021 10:11:20 +0000 (+0300) Subject: lib-lua: Add dluaL_error X-Git-Tag: 2.3.16~156 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d7067276080f08c3f2828e72475688052a4eafb;p=thirdparty%2Fdovecot%2Fcore.git lib-lua: Add dluaL_error --- diff --git a/src/lib-lua/Makefile.am b/src/lib-lua/Makefile.am index c19ac8a13d..4f8d25f84e 100644 --- a/src/lib-lua/Makefile.am +++ b/src/lib-lua/Makefile.am @@ -7,6 +7,7 @@ pkglib_LTLIBRARIES = libdovecot-lua.la libdovecot_lua_la_SOURCES = \ dlua-script.c \ dlua-pushstring.c \ + dlua-error.c \ dlua-dovecot.c \ dlua-compat.c \ dlua-resume.c \ diff --git a/src/lib-lua/dlua-error.c b/src/lib-lua/dlua-error.c new file mode 100644 index 0000000000..6ecb5d2f41 --- /dev/null +++ b/src/lib-lua/dlua-error.c @@ -0,0 +1,13 @@ +/* Copyright (c) 2021 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "dlua-script-private.h" + +int dluaL_error(lua_State *L, const char *fmt, ...) +{ + va_list argp; + va_start(argp, fmt); + (void)dlua_pushvfstring(L, fmt, argp); + va_end(argp); + return lua_error(L); +} diff --git a/src/lib-lua/dlua-script-private.h b/src/lib-lua/dlua-script-private.h index 35035c0ee7..8fde84e376 100644 --- a/src/lib-lua/dlua-script-private.h +++ b/src/lib-lua/dlua-script-private.h @@ -105,6 +105,9 @@ struct event *dlua_check_event(lua_State *L, int arg); const char *dlua_pushvfstring(lua_State *L, const char *fmt, va_list argp) ATTR_FORMAT(2, 0); const char *dlua_pushfstring(lua_State *L, const char *fmt, ...) ATTR_FORMAT(2, 3); +/* improved luaL_error, can handle full C format support */ +int dluaL_error(lua_State *L, const char *fmt, ...) ATTR_FORMAT(2, 3); + /* * Returns field from a Lua table *