public static string lua_pushstring(LuaState state, string s) { // This version is designed to handle null strings correctly. IntPtr stringPtr = LuaNativeBinding.lua_pushstring(state, s); return(Marshal.PtrToStringAnsi(stringPtr)); }
public static string lua_tostring(LuaState luaState, int index) { uint len; IntPtr ptr = LuaNativeBinding.lua_tolstring(luaState, index, out len); return(Marshal.PtrToStringAnsi(ptr)); }
public static string lua_pushlstring(LuaState state, string s) { // This version can't handle a null string. if (s == null) { return(null); } IntPtr stringPtr = LuaNativeBinding.lua_pushlstring(state, s, (uint)s.Length); return(Marshal.PtrToStringAnsi(stringPtr)); }
//TODO: buffer manipulation // LUA STANDARD LIBRARIES (lualib.h) public static void luaL_openlibs(LuaState luaState) { LuaNativeBinding.luaL_openlibs(luaState); }
public static void luaL_requiref(LuaState state, string moduleName, LuaCFunction openFunc, int glb) { IntPtr funcPtr = Marshal.GetFunctionPointerForDelegate(openFunc); LuaNativeBinding.luaL_requiref(state, moduleName, funcPtr, glb); }
//TODO: luaL_setfuncs public static IntPtr luaL_getsubtable(LuaState state, int index, string fName) { return(LuaNativeBinding.luaL_getsubtable(state, index, fName)); }
public static int luaL_len(LuaState state, int index) { return(LuaNativeBinding.luaL_len(state, index)); }
public static int luaL_loadstring(LuaState luaState, string s) { return(LuaNativeBinding.luaL_loadstring(luaState, s)); }
public static int luaL_loadfilex(LuaState state, string fileName, string mode) { return(LuaNativeBinding.luaL_loadfilex(state, fileName, mode)); }
public static void luaL_checkstack(LuaState state, int size, string message) { LuaNativeBinding.luaL_checkstack(state, size, message); }
public static uint luaL_optunsigned(LuaState state, int argNum, uint def) { return(LuaNativeBinding.luaL_optunsigned(state, argNum, def)); }
public static uint luaL_checkunsigned(LuaState state, int argNum) { return(LuaNativeBinding.luaL_checkunsigned(state, argNum)); }
public static int luaL_optinteger(LuaState state, int argNum, int def) { return(LuaNativeBinding.luaL_optinteger(state, argNum, def)); }
public static int luaL_checkinteger(LuaState state, int argNum) { return(LuaNativeBinding.luaL_checkinteger(state, argNum)); }
public static double luaL_optnumber(LuaState state, int argNum, double def) { return(LuaNativeBinding.luaL_optnumber(state, argNum, def)); }
public static int luaL_execresult(LuaState state, int stat) { return(LuaNativeBinding.luaL_execresult(state, stat)); }
public static void luaL_unref(LuaState state, int index, int refVal) { LuaNativeBinding.luaL_unref(state, index, refVal); }
public static void luaL_checktype(LuaState state, int argNum, LuaType type) { LuaNativeBinding.luaL_checktype(state, argNum, (int)type); }
public static int luaL_loadbufferx(LuaState state, string buffer, string name, string mode) { return(LuaNativeBinding.luaL_loadbufferx(state, buffer, (uint)buffer.Length, name, mode)); }
public static void luaL_checkany(LuaState state, int argNum) { LuaNativeBinding.luaL_checkany(state, argNum); }
public static LuaState luaL_newstate() { return(LuaNativeBinding.luaL_newstate()); }
public static int luaL_newmetatable(LuaState state, string tableName) { return(LuaNativeBinding.luaL_newmetatable(state, tableName)); }
public static string luaL_gsub(LuaState state, string s, string p, string r) { IntPtr stringPtr = LuaNativeBinding.luaL_gsub(state, s, p, r); return(Marshal.PtrToStringAnsi(stringPtr)); }
public static void luaL_setmetatable(LuaState state, string tableName) { LuaNativeBinding.luaL_setmetatable(state, tableName); }
public static void luaL_traceback(LuaState L, LuaState L1, string message, int level) { LuaNativeBinding.luaL_traceback(L, L1, message, level); }
// TODO: Could maybe do something with GCHandle to pass back a C# instance instead of IntPtr. public static IntPtr luaL_checkudata(LuaState state, int ud, string tableName) { return(LuaNativeBinding.luaL_checkudata(state, ud, tableName)); }
public static void luaL_getmetatable(LuaState state, string fieldName) { lua_getfield(state, LuaNativeBinding.luautil_getregistryindex(), fieldName); }
public static void luaL_where(LuaState state, int lvl) { LuaNativeBinding.luaL_where(state, lvl); }
/*************************************** * PRIVATE VARIABLES **************************************/ /*************************************** * PUBLIC METHODS **************************************/ // LUA STANDARD LIBRARY (lua.h) // State Manipulation public static void lua_close(LuaState state) { LuaNativeBinding.lua_close(state); }
//TODO: luaL_error //TODO: luaL_checkoption public static int luaL_fileresult(LuaState state, int stat, string fileName) { return(LuaNativeBinding.luaL_fileresult(state, stat, fileName)); }