diff --git a/400_xowa/src/gplx/xowa/htmls/core/makes/tests/Xoh_make_fxt.java b/400_xowa/src/gplx/xowa/htmls/core/makes/tests/Xoh_make_fxt.java
index c280663ae..a72f878bf 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/makes/tests/Xoh_make_fxt.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/makes/tests/Xoh_make_fxt.java
@@ -58,7 +58,7 @@ public class Xoh_make_fxt {
}
public void Expd__redlinks(String... ary) {
int len = ary.length;
- for (int i = 0; i < len; i++) {
+ for (int i = 0; i < len; i++) {
Xopg_lnki_itm__hdump itm = new Xopg_lnki_itm__hdump(wiki.Ttl_parse(Bry_.new_u8(ary[i])));
expd_redlinks.Add(itm);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_value_.java b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_value_.java
index bae707f2d..1809d34db 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_value_.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_value_.java
@@ -35,6 +35,14 @@ class Luaj_value_ {
int rv_idx = 0;
LuaValue cur = LuaValue.NIL; // needed for luaj iterator; tbl.next(cur);
+ // override tbl with xo_orig_table from mw.lua.dataWrapper; ISSUE#:586: DATE:2019-10-29
+ LuaValue metatable_obj = tbl.getmetatable();
+ if (metatable_obj != null && !metatable_obj.isnil()) {
+ LuaValue orig_data_obj = ((LuaTable)metatable_obj).get("xo_orig_data");
+ if (orig_data_obj != null && !orig_data_obj.isnil())
+ tbl = (LuaTable)orig_data_obj;
+ }
+
// loop over pairs in tbl; no direct way to get kvs
while (true) {
// get next itm
diff --git a/res/bin/any/xowa/xtns/Scribunto/engines/LuaCommon/lualib/mw.lua b/res/bin/any/xowa/xtns/Scribunto/engines/LuaCommon/lualib/mw.lua
index 7a931cf76..733568654 100644
--- a/res/bin/any/xowa/xtns/Scribunto/engines/LuaCommon/lualib/mw.lua
+++ b/res/bin/any/xowa/xtns/Scribunto/engines/LuaCommon/lualib/mw.lua
@@ -19,7 +19,11 @@ function mw.dump_table(o)
if type(o) == 'table' then
local s = '{ '
for k,v in pairs(o) do
- if type(k) ~= 'number' then k = '"'..k..'"' end
+ if type(k) == 'table' then
+ k = mw.dump_table(k)
+ elseif type(k) ~= 'number' then
+ k = '"'..k..'"'
+ end
dump_table_count = dump_table_count + 1;
s = s .. '['..k..'] = ' .. mw.dump_table(v) .. ','
dump_table_count = dump_table_count - 1;
@@ -712,6 +716,7 @@ local function dataWrapper( data, seen )
end
local mt = {
+ xo_orig_data = data, -- tbl.next does not retrieve data from datawrapper; ISSUE#:586: DATE:2019-10-29
mw_loadData = true,
__index = function ( tt, k )
assert( t == tt )