Line |
Branch |
Decision |
Exec |
Source |
1 |
|
|
|
/* |
2 |
|
|
|
** $Id: linit.c $ |
3 |
|
|
|
** Initialization of libraries for lua.c and other clients |
4 |
|
|
|
** See Copyright Notice in lua.h |
5 |
|
|
|
*/ |
6 |
|
|
|
|
7 |
|
|
|
|
8 |
|
|
|
#define linit_c |
9 |
|
|
|
#define LUA_LIB |
10 |
|
|
|
|
11 |
|
|
|
/* |
12 |
|
|
|
** If you embed Lua in your program and need to open the standard |
13 |
|
|
|
** libraries, call luaL_openlibs in your program. If you need a |
14 |
|
|
|
** different set of libraries, copy this file to your project and edit |
15 |
|
|
|
** it to suit your needs. |
16 |
|
|
|
** |
17 |
|
|
|
** You can also *preload* libraries, so that a later 'require' can |
18 |
|
|
|
** open the library, which is already linked to the application. |
19 |
|
|
|
** For that, do the following code: |
20 |
|
|
|
** |
21 |
|
|
|
** luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE); |
22 |
|
|
|
** lua_pushcfunction(L, luaopen_modname); |
23 |
|
|
|
** lua_setfield(L, -2, modname); |
24 |
|
|
|
** lua_pop(L, 1); // remove PRELOAD table |
25 |
|
|
|
*/ |
26 |
|
|
|
|
27 |
|
|
|
#include "lprefix.h" |
28 |
|
|
|
|
29 |
|
|
|
|
30 |
|
|
|
#include <stddef.h> |
31 |
|
|
|
|
32 |
|
|
|
#include "lua.h" |
33 |
|
|
|
|
34 |
|
|
|
#include "lualib.h" |
35 |
|
|
|
#include "lauxlib.h" |
36 |
|
|
|
|
37 |
|
|
|
|
38 |
|
|
|
/* |
39 |
|
|
|
** these libs are loaded by lua.c and are readily available to any Lua |
40 |
|
|
|
** program |
41 |
|
|
|
*/ |
42 |
|
|
|
static const luaL_Reg loadedlibs[] = { |
43 |
|
|
|
{LUA_GNAME, luaopen_base}, |
44 |
|
|
|
{LUA_LOADLIBNAME, luaopen_package}, |
45 |
|
|
|
{LUA_COLIBNAME, luaopen_coroutine}, |
46 |
|
|
|
{LUA_TABLIBNAME, luaopen_table}, |
47 |
|
|
|
{LUA_IOLIBNAME, luaopen_io}, |
48 |
|
|
|
// RUSEFI: don't auto load OS lib |
49 |
|
|
|
// {LUA_OSLIBNAME, luaopen_os}, |
50 |
|
|
|
{LUA_STRLIBNAME, luaopen_string}, |
51 |
|
|
|
{LUA_MATHLIBNAME, luaopen_math}, |
52 |
|
|
|
{LUA_UTF8LIBNAME, luaopen_utf8}, |
53 |
|
|
|
{LUA_DBLIBNAME, luaopen_debug}, |
54 |
|
|
|
{NULL, NULL} |
55 |
|
|
|
}; |
56 |
|
|
|
|
57 |
|
|
|
|
58 |
|
|
✗ |
LUALIB_API void luaL_openlibs (lua_State *L) { |
59 |
|
|
|
const luaL_Reg *lib; |
60 |
|
|
|
/* "require" functions from 'loadedlibs' and set results to global table */ |
61 |
|
|
✗ |
for (lib = loadedlibs; lib->func; lib++) { |
62 |
|
|
✗ |
luaL_requiref(L, lib->name, lib->func, 1); |
63 |
|
|
✗ |
lua_pop(L, 1); /* remove lib */ |
64 |
|
|
|
} |
65 |
|
|
✗ |
} |
66 |
|
|
|
|
67 |
|
|
|
|