summaryrefslogtreecommitdiff
path: root/package/lua/patches/040-gzip-source-loader.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/lua/patches/040-gzip-source-loader.patch')
-rw-r--r--package/lua/patches/040-gzip-source-loader.patch136
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 8214ae9f87..0000000000
--- 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
-+
- /* }================================================================== */
-
-