소스 검색

Modify official LuaSQLite3, to register sqlite3 as a global table (compatibility to the previous version)

bel 10 년 전
부모
커밋
358f43c0d2
1개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 8 2
      src/third_party/lsqlite3.c

+ 8 - 2
src/third_party/lsqlite3.c

@@ -2180,6 +2180,12 @@ static void create_meta(lua_State *L, const char *name, const luaL_Reg *lib) {
     lua_pop(L, 1);
 }
 
+static int luaopen_sqlitelib (lua_State *L) {
+    luaL_newlibtable(L, sqlitelib);
+    luaL_setfuncs(L, sqlitelib, 0);
+    return 1;
+}
+
 LUALIB_API int luaopen_lsqlite3(lua_State *L) {
     create_meta(L, sqlite_meta, dblib);
     create_meta(L, sqlite_vm_meta, vmlib);
@@ -2188,8 +2194,8 @@ LUALIB_API int luaopen_lsqlite3(lua_State *L) {
     luaL_getmetatable(L, sqlite_ctx_meta);
     sqlite_ctx_meta_ref = luaL_ref(L, LUA_REGISTRYINDEX);
 
-    /* register (local) sqlite metatable */
-    luaL_register(L, "sqlite3", sqlitelib);
+    /* register global sqlite3 library */
+    luaL_requiref(L, "sqlite3", luaopen_sqlitelib, 1);
 
     {
         int i = 0;