|
@@ -1880,8 +1880,8 @@ patch = [[
|
|
|
+++ lundump.c 2008/04/04 19:51:41 2.7.1.4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
--** $Id: bugs,v 1.123 2013/05/13 16:17:47 roberto Exp roberto $
|
|
|
-+** $Id: bugs,v 1.123 2013/05/13 16:17:47 roberto Exp roberto $
|
|
|
+-** $Id: bugs,v 1.124 2013/05/16 16:03:50 roberto Exp roberto $
|
|
|
++** $Id: bugs,v 1.124 2013/05/16 16:03:50 roberto Exp roberto $
|
|
|
** load precompiled Lua chunks
|
|
|
** See Copyright Notice in lua.h
|
|
|
*/
|
|
@@ -2409,6 +2409,57 @@ patch = [[
|
|
|
}
|
|
|
|
|
|
|
|
|
+Bug{
|
|
|
+what = [[When loading a file,
|
|
|
+Lua may call the reader function again after it returned end of input
|
|
|
+]],
|
|
|
+report = [[Chris Howie, 2013/06/05]],
|
|
|
+since = [[5.1]],
|
|
|
+fix = [[5.2]],
|
|
|
+example = [[
|
|
|
+load(function () print("called"); return nil end)
|
|
|
+--> called
|
|
|
+--> called (should be called only once!)
|
|
|
+]],
|
|
|
+patch = [[
|
|
|
+--- lzio.h 2007/12/27 13:02:25 1.21.1.1
|
|
|
++++ lzio.h 2013/07/04 13:55:59
|
|
|
+@@ -59,6 +59,7 @@
|
|
|
+ lua_Reader reader;
|
|
|
+ void* data; /* additional data */
|
|
|
+ lua_State *L; /* Lua state (for reader) */
|
|
|
++ int eoz; /* true if reader has no more data */
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+--- lzio.c 2007/12/27 13:02:25 1.31.1.1
|
|
|
++++ lzio.c 2013/07/04 13:53:06
|
|
|
+@@ -22,10 +22,14 @@
|
|
|
+ size_t size;
|
|
|
+ lua_State *L = z->L;
|
|
|
+ const char *buff;
|
|
|
++ if (z->eoz) return EOZ;
|
|
|
+ lua_unlock(L);
|
|
|
+ buff = z->reader(L, z->data, &size);
|
|
|
+ lua_lock(L);
|
|
|
+- if (buff == NULL || size == 0) return EOZ;
|
|
|
++ if (buff == NULL || size == 0) {
|
|
|
++ z->eoz = 1; /* avoid calling reader function next time */
|
|
|
++ return EOZ;
|
|
|
++ }
|
|
|
+ z->n = size - 1;
|
|
|
+ z->p = buff;
|
|
|
+ return char2int(*(z->p++));
|
|
|
+@@ -51,6 +55,7 @@
|
|
|
+ z->data = data;
|
|
|
+ z->n = 0;
|
|
|
+ z->p = NULL;
|
|
|
++ z->eoz = 0;
|
|
|
+ }
|
|
|
+]]
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
-----------------------------------------------------------------
|
|
|
-- Lua 5.2.0
|
|
|
|
|
@@ -3025,6 +3076,31 @@ patch = [[
|
|
|
]]
|
|
|
}
|
|
|
|
|
|
+Bug{
|
|
|
+what = [[luac listings choke on long strings]],
|
|
|
+report = [[Ashwin Hirschi, 2013/07/03]],
|
|
|
+since = [[5.1.2]],
|
|
|
+fix = nil,
|
|
|
+example = [[
|
|
|
+-- When you call 'luac -l' over this chunk, it chokes the output
|
|
|
+s="Lorem ipsum dolor sit amet, consectetur, "
|
|
|
+]],
|
|
|
+patch = [[
|
|
|
+--- luac.c 2011-11-29 15:46:33 -0200 1.69
|
|
|
++++ luac.c 2013-07-03 21:26:01 -0300
|
|
|
+@@ -251,7 +251,7 @@
|
|
|
+ static void PrintConstant(const Proto* f, int i)
|
|
|
+ {
|
|
|
+ const TValue* o=&f->k[i];
|
|
|
+- switch (ttype(o))
|
|
|
++ switch (ttypenv(o))
|
|
|
+ {
|
|
|
+ case LUA_TNIL:
|
|
|
+ printf("nil");
|
|
|
+]]
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
--[=[
|
|
|
Bug{
|
|
|
what = [[ ]],
|