diff options
Diffstat (limited to 'package/lua/patches/040-gzip-source-loader.patch')
-rw-r--r-- | package/lua/patches/040-gzip-source-loader.patch | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/package/lua/patches/040-gzip-source-loader.patch b/package/lua/patches/040-gzip-source-loader.patch deleted file mode 100644 index 8214ae9..0000000 --- a/package/lua/patches/040-gzip-source-loader.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff -ur lua-5.1.4.orig/src/Makefile lua-5.1.4/src/Makefile ---- lua-5.1.4.orig/src/Makefile 2009-04-04 23:06:04.000000000 +0200 -+++ lua-5.1.4/src/Makefile 2009-04-04 23:06:15.000000000 +0200 -@@ -12,7 +12,7 @@ - AR= ar rcu - RANLIB= ranlib - RM= rm -f --LIBS= -lm $(MYLIBS) -+LIBS= -lm -lz $(MYLIBS) - - MYCFLAGS= - MYLDFLAGS= -diff -ur lua-5.1.4.orig/src/lauxlib.c lua-5.1.4/src/lauxlib.c ---- lua-5.1.4.orig/src/lauxlib.c 2009-04-04 23:06:04.000000000 +0200 -+++ lua-5.1.4/src/lauxlib.c 2009-04-05 03:35:24.000000000 +0200 -@@ -11,6 +11,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -+#include <zlib.h> - - - /* This file uses only the official API of Lua. -@@ -535,6 +536,12 @@ - char buff[LUAL_BUFFERSIZE]; - } LoadF; - -+typedef struct LoadGZ { -+ int first_chunk; -+ gzFile f; -+ char buffer[LUAL_GZLDBUFFER]; -+} LoadGZ; -+ - - static const char *getF (lua_State *L, void *ud, size_t *size) { - LoadF *lf = (LoadF *)ud; -@@ -550,6 +557,28 @@ - } - - -+static const char *getGZ (lua_State *L, void *ud, size_t *size) { -+ LoadGZ *lf = (LoadGZ *)ud; -+ char *sp = 0; -+ (void)L; -+ if (gzeof(lf->f)) return NULL; -+ *size = gzread(lf->f, lf->buffer, sizeof(lf->buffer)); -+ if (*size > 0) { -+ if (lf->first_chunk) { -+ lf->first_chunk = 0; -+ if ((lf->buffer[0] == '#') && (lf->buffer[1] == '!') && -+ (sp=strstr(lf->buffer, "\n")) != NULL) -+ { -+ *size -= ((uint)sp - (uint)lf->buffer); -+ return sp; -+ } -+ } -+ return lf->buffer; -+ } -+ return NULL; -+} -+ -+ - static int errfile (lua_State *L, const char *what, int fnameindex) { - const char *serr = strerror(errno); - const char *filename = lua_tostring(L, fnameindex) + 1; -@@ -560,6 +589,31 @@ - - - LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { -+ if ((filename != NULL) && strstr(filename, ".lua.gz")) { -+ return luaL_loadfile_gzip(L, filename); -+ } -+ else { -+ return luaL_loadfile_plain(L, filename); -+ } -+} -+ -+ -+LUALIB_API int luaL_loadfile_gzip (lua_State *L, const char *filename) { -+ LoadGZ gzf; -+ int status; -+ int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ -+ lua_pushfstring(L, "@%s", filename); -+ gzf.f = gzopen(filename, "r"); -+ gzf.first_chunk = 1; -+ if (gzf.f == Z_NULL) return errfile(L, "open", fnameindex); -+ status = lua_load(L, getGZ, &gzf, lua_tostring(L, -1)); -+ (void)gzclose(gzf.f); -+ lua_remove(L, fnameindex); -+ return status; -+} -+ -+ -+LUALIB_API int luaL_loadfile_plain (lua_State *L, const char *filename) { - LoadF lf; - int status, readstatus; - int c; -diff -ur lua-5.1.4.orig/src/lauxlib.h lua-5.1.4/src/lauxlib.h ---- lua-5.1.4.orig/src/lauxlib.h 2009-04-04 23:06:04.000000000 +0200 -+++ lua-5.1.4/src/lauxlib.h 2009-04-04 23:06:15.000000000 +0200 -@@ -81,6 +81,8 @@ - LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); - - LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); -+LUALIB_API int (luaL_loadfile_gzip) (lua_State *L, const char *filename); -+LUALIB_API int (luaL_loadfile_plain) (lua_State *L, const char *filename); - LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, - const char *name); - LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); -diff -ur lua-5.1.4.orig/src/luaconf.h lua-5.1.4/src/luaconf.h ---- lua-5.1.4.orig/src/luaconf.h 2009-04-04 23:06:04.000000000 +0200 -+++ lua-5.1.4/src/luaconf.h 2009-04-04 23:27:20.000000000 +0200 -@@ -101,7 +101,9 @@ - #define LUA_CDIR LUA_ROOT "lib/lua/5.1/" - #define LUA_PATH_DEFAULT \ - "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ -- LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua" -+ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ -+ "./?.lua.gz;" LUA_LDIR"?.lua.gz;" LUA_LDIR"?/init.lua.gz;" \ -+ LUA_CDIR"?.lua.gz;" LUA_CDIR"?/init.lua.gz" - #define LUA_CPATH_DEFAULT \ - "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so" - #endif -@@ -506,6 +508,12 @@ - */ - #define LUAL_BUFFERSIZE BUFSIZ - -+ -+/* -+@@ LUAL_GZLDBUFFER is the buffer size used by the gzip source loader. -+*/ -+#define LUAL_GZLDBUFFER 8192 -+ - /* }================================================================== */ - - |