From be072de8d9f234d91d8186eb94462b7b0ee20299 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Fri, 29 May 2020 09:15:00 -0400 Subject: [PATCH] Luaj: Reinstate `next` variable for frontier matches [#732] --- .../libs/Scrib_lib_ustring__gsub__tst.java | 18 +++++++++--------- res/bin/any/java/luaj/luaj_xowa.jar | Bin 390047 -> 390054 bytes 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__gsub__tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__gsub__tst.java index 2c75e80aa..4e2cb8cab 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__gsub__tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__gsub__tst.java @@ -145,6 +145,13 @@ public class Scrib_lib_ustring__gsub__tst { fxt.Init__cbk(proc); Exec_gsub(text, regx, -1, proc.To_scrib_lua_proc(), "aBYz;2"); } + @Test public void Luacbk__balanced() { // PURPOSE:LUAJ_PATTERN_REPLACEMENT; DATE:2019-04-16 + String text = "}a{{b}}c{{d}}"; + String regx = "%b{}"; // "()" is anypos, which inserts find_pos to results + Mock_proc__verify_args proc = new Mock_proc__verify_args(0, new Object[]{"x", "{{b}}"}, new Object[]{"y", "{{d}}"}); + fxt.Init__cbk(proc); + Exec_gsub(text, regx, -1, proc.To_scrib_lua_proc(), "}axcy;2"); + } @Test public void Luacbk__anypos() { String text = "ad2f1e3z"; String regx = "()([1d])([2e])([3f])"; // "()" is anypos, which inserts find_pos to results @@ -156,21 +163,14 @@ public class Scrib_lib_ustring__gsub__tst { } @Test public void Luacbk__frontier__eos() { // PURPOSE:frontier pattern should not match end of string; ISSUE#:732; DATE:2020-05-28 String text = "a"; - String regx = "([a])(%f[%s])"; - String expd = "a;0"; // fails if "b;0" + String regx = "(a)(%f[%s])"; + String expd = "a;0"; // fails if "b;0" when below is uncommented Mock_proc__verify_args proc = new Mock_proc__verify_args(0 //, new Object[]{"b", "a", ""} // NOTE: used to require these parameters ); fxt.Init__cbk(proc); Exec_gsub(text, regx, -1, proc.To_scrib_lua_proc(), expd); } - @Test public void Luacbk__balanced() { // PURPOSE:LUAJ_PATTERN_REPLACEMENT; DATE:2019-04-16 - String text = "}a{{b}}c{{d}}"; - String regx = "%b{}"; // "()" is anypos, which inserts find_pos to results - Mock_proc__verify_args proc = new Mock_proc__verify_args(0, new Object[]{"x", "{{b}}"}, new Object[]{"y", "{{d}}"}); - fxt.Init__cbk(proc); - Exec_gsub(text, regx, -1, proc.To_scrib_lua_proc(), "}axcy;2"); - } // Mock_proc__verify_args proc = new Mock_proc__verify_args(0, new Object[]{"x", "{{yes2}}"}, new Object[]{"x", "{{flagicon|USA}}"}); // fxt.Init__cbk(proc); // Exec_gsub("}\n|-\n|28\n|{{yes2}}Win\n|28–0\n|style=\"text-align:left;\"|{{flagicon|USA}}", "%b{}", -1, proc.To_scrib_lua_proc(), "}axbx;2"); } diff --git a/res/bin/any/java/luaj/luaj_xowa.jar b/res/bin/any/java/luaj/luaj_xowa.jar index 49800a521dc0962c5e4f68a73300a3b2f061c3ff..2769e190943cef1f46eeb5ed4f152967fb325a41 100644 GIT binary patch delta 14341 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