aboutsummaryrefslogtreecommitdiff
path: root/bugs
diff options
context:
space:
mode:
Diffstat (limited to 'bugs')
-rw-r--r--bugs27
1 files changed, 27 insertions, 0 deletions
diff --git a/bugs b/bugs
index 38d295ae..355870e2 100644
--- a/bugs
+++ b/bugs
@@ -3575,6 +3575,33 @@ patch = [[
3575} 3575}
3576 3576
3577 3577
3578Bug{
3579what = [['gmatch' iterator fails when called from a coroutine different
3580from the one that created it]],
3581report = [[Nagaev Boris, 2016/03/18]],
3582since = [[5.3.2]],
3583fix = nil,
3584example = [[
3585local f = string.gmatch("1 2 3 4 5", "%d+")
3586print(f()) --> 1
3587co = coroutine.wrap(f)
3588print(co()) --> ??? (should be 2)
3589]],
3590patch = [[
3591--- lstrlib.c 2016/02/25 19:42:55 1.240
3592+++ lstrlib.c 2016/03/21 17:27:07
3593@@ -688,14 +688,13 @@
3594 static int gmatch_aux (lua_State *L) {
3595 GMatchState *gm = (GMatchState *)lua_touserdata(L, lua_upvalueindex(3));
3596 const char *src;
3597+ gm->ms.L = L;
3598 for (src = gm->src; src <= gm->ms.src_end; src++) {
3599 const char *e;
3600 reprepstate(&gm->ms);
3601]]
3602}
3603
3604
3578--[=[ 3605--[=[
3579Bug{ 3606Bug{
3580what = [[ ]], 3607what = [[ ]],