From c1ac633d9fa5da9fb312e4a990ee48d0fa7c0c4e Mon Sep 17 00:00:00 2001 From: unwox Date: Thu, 13 Jun 2024 13:11:01 +0600 Subject: add LoadString method for evaluating strings in lua context --- lua.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lua.go') diff --git a/lua.go b/lua.go index 1c23126..f13a8cb 100644 --- a/lua.go +++ b/lua.go @@ -121,6 +121,23 @@ func (l *Lua) Next() bool { return C.lua_next(l.l, -2) != 0 } +func (l *Lua) LoadString(code string) error { + cstr := C.CString(code) + defer C.free(unsafe.Pointer(cstr)) + if C.luaL_loadstring(l.l, cstr) != C.LUA_OK { + errMsg := l.ToString(-1) + l.Pop(1) + return errors.New(errMsg) + } + if !l.PCall(0, 0) { + errMsg := l.ToString(-1) + l.Pop(1) + return errors.New(errMsg) + } + l.Pop(l.StackLen()) + return nil +} + func (l *Lua) PushTableItem(key string) { ckey := C.CString(key) defer C.free(unsafe.Pointer(ckey)) -- cgit v1.2.3