Browse Source

Add new upstream Lua patches and rename all patches for consistency

Several new upstream patches against the latest version of Lua have
appeared on http://www.lua.org/bugs.html. This commit adds them to
Buildroot, and also renames the other patches to have a coherent patch
naming: lua-bugX, where X is the identifier of the bug as visible on
http://www.lua.org/bugs.html. Note that bug 1 and 2 are not associated
with patches, which explains why the first patch is labeled lua-bug3.

Fixes bug #2365.

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Francois Perrad 15 years ago
parent
commit
66ab676616

+ 0 - 0
package/lua/lua-boolean_expression.patch → package/lua/lua-bug3-boolean_expression.patch


+ 0 - 0
package/lua/lua-table.patch → package/lua/lua-bug4-table.patch


+ 0 - 0
package/lua/lua-debug_getfenv.patch → package/lua/lua-bug5-debug_getfenv.patch


+ 0 - 0
package/lua/lua-gc_performance.patch → package/lua/lua-bug6-gc_performance.patch


+ 20 - 0
package/lua/lua-bug7-string_format.patch

@@ -0,0 +1,20 @@
+--- lua-5.1.4.orig/src/lstrlib.c	2008/07/11 17:27:21	1.132.1.4
++++ lua-5.1.4/src/lstrlib.c	2010/05/14 15:12:53
+@@ -754,6 +754,7 @@
+ 
+ 
+ static int str_format (lua_State *L) {
++  int top = lua_gettop(L);
+   int arg = 1;
+   size_t sfl;
+   const char *strfrmt = luaL_checklstring(L, arg, &sfl);
+@@ -768,7 +769,8 @@
+     else { /* format item */
+       char form[MAX_FORMAT];  /* to store the format (`%...') */
+       char buff[MAX_ITEM];  /* to store the formatted item */
+-      arg++;
++      if (++arg > top)
++        luaL_argerror(L, arg, "no value");
+       strfrmt = scanformat(L, strfrmt, form);
+       switch (*strfrmt++) {
+         case 'c': {

+ 14 - 0
package/lua/lua-bug8-io_read.patch

@@ -0,0 +1,14 @@
+--- lua-5.1.4.orig/src/liolib.c	2008/01/18 17:47:43	2.73.1.3
++++ lua-5.1.4.orig/src/liolib.c	2010/05/14 15:29:29
+@@ -276,7 +276,10 @@
+     lua_pushnumber(L, d);
+     return 1;
+   }
+-  else return 0;  /* read fails */
++  else {
++    lua_pushnil(L);  /* "result" to be removed */
++    return 0;  /* read fails */
++  }
+ }
+ 
+