From 22840a3551d6564ea271d4be6ef7b539d4eba409 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Thu, 17 Jul 2025 17:04:08 +0200 Subject: Added embedding Lua --- c-embed-lua/main.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 c-embed-lua/main.c (limited to 'c-embed-lua/main.c') diff --git a/c-embed-lua/main.c b/c-embed-lua/main.c new file mode 100644 index 0000000..7ab678a --- /dev/null +++ b/c-embed-lua/main.c @@ -0,0 +1,29 @@ +#include "lua-5.4.8/src/lua.h" +#include "lua-5.4.8/src/lualib.h" +#include "lua-5.4.8/src/lauxlib.h" + +#include "hi.h" + +int main(void) { + lua_State *L = luaL_newstate(); + luaL_openlibs(L); + + // Not wise since this is not a null-terminated string. + /* luaL_dostring(L, (const char*)hi); */ + + // https://www.lua.org/manual/5.4/manual.html#luaL_loadbuffer + // Load Lua chunk from `hi` buffer. + if (luaL_loadbuffer(L, (const char*)hi, hi_len, "hi_chunk") != LUA_OK) { + fprintf(stderr, "Load error: %s\n", lua_tostring(L, -1)); + lua_pop(L, 1); + } else { + // Execute the chunk. + if (lua_pcall(L, 0, 0, 0) != LUA_OK) { + fprintf(stderr, "Runtime error: %s\n", lua_tostring(L, -1)); + lua_pop(L, 1); + } + } + + lua_close(L); + return 0; +} -- cgit v1.2.3