lua: re-enable host builds with some more fixes
[openwrt/svn-archive/archive.git] / package / lua / patches-host / 040-gzip-source-loader.patch
diff --git a/package/lua/patches-host/040-gzip-source-loader.patch b/package/lua/patches-host/040-gzip-source-loader.patch
deleted file mode 100644 (file)
index 8214ae9..0000000
+++ /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
-+
- /* }================================================================== */