mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-21 09:28:17 +00:00
- lib/lua 替换为 Lua 5.1.5 官方源码; CMakeLists 删除 5.1 不存在的 lcorolib.c/lctype.c/lutf8lib.c/lbitlib.c - 补充 lua.hpp C++ 包装头(5.1 官方不提供, 保持桥接 include 路径不变) - LUA_OK 兼容宏: 5.1 无此定义(成功返回值为 0) - luaL_tolstring 兼容: 5.1 无此 API, l_print 改用 lua_tostring + lua_typename 兜底(#if LUA_VERSION_NUM >= 502 条件编译, 弹栈逻辑同步分支) - luaL_setfuncs 兼容: 5.1 无此 API, push_tty_file 改手动循环注册 - I/O 重定向沿用 Registry 方案(自 5.2.4 分支同步), typed interop 版本自适应断言同步 - 验证: GTest 44/44 通过
39 lines
765 B
C
39 lines
765 B
C
/*
|
|
** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $
|
|
** Initialization of libraries for lua.c
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
|
|
|
|
#define linit_c
|
|
#define LUA_LIB
|
|
|
|
#include "lua.h"
|
|
|
|
#include "lualib.h"
|
|
#include "lauxlib.h"
|
|
|
|
|
|
static const luaL_Reg lualibs[] = {
|
|
{"", luaopen_base},
|
|
{LUA_LOADLIBNAME, luaopen_package},
|
|
{LUA_TABLIBNAME, luaopen_table},
|
|
{LUA_IOLIBNAME, luaopen_io},
|
|
{LUA_OSLIBNAME, luaopen_os},
|
|
{LUA_STRLIBNAME, luaopen_string},
|
|
{LUA_MATHLIBNAME, luaopen_math},
|
|
{LUA_DBLIBNAME, luaopen_debug},
|
|
{NULL, NULL}
|
|
};
|
|
|
|
|
|
LUALIB_API void luaL_openlibs (lua_State *L) {
|
|
const luaL_Reg *lib = lualibs;
|
|
for (; lib->func; lib++) {
|
|
lua_pushcfunction(L, lib->func);
|
|
lua_pushstring(L, lib->name);
|
|
lua_call(L, 1, 0);
|
|
}
|
|
}
|
|
|