diff options
Diffstat (limited to 'src/lua/common')
-rw-r--r-- | src/lua/common/common.h | 1 | ||||
-rw-r--r-- | src/lua/common/error.h | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/lua/common/common.h b/src/lua/common/common.h index 536b897..0ee72cc 100644 --- a/src/lua/common/common.h +++ b/src/lua/common/common.h @@ -3,5 +3,6 @@ #include "Proxy.h" #include "Reference.hpp" +#include "error.h" #endif
\ No newline at end of file diff --git a/src/lua/common/error.h b/src/lua/common/error.h new file mode 100644 index 0000000..f8b62f2 --- /dev/null +++ b/src/lua/common/error.h @@ -0,0 +1,28 @@ +#ifndef __JIN_ERROR_H +#define __JIN_ERROR_H +#include "../../luax.h" +#include "../modules/jin.h" +#include <string.h> + +namespace jin +{ +namespace lua +{ + + static const int FORMAT_MSG_BUFFER_SIZE = 2048; + + inline void error(lua_State* L, const char* fmt, ...) + { + char err[FORMAT_MSG_BUFFER_SIZE + 1] = { 0 }; + va_list args; + va_start(args, fmt); + vsnprintf(err + strlen(err), FORMAT_MSG_BUFFER_SIZE, fmt, args); + va_end(args); + luax_getglobal(L, MODULE_NAME); + luax_setfield_string(L, "error", err); + } + +} +} + +#endif
\ No newline at end of file |