From ebfd7a835287560af315a2b8c6d4334b55d98538 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Mon, 4 Feb 2019 22:11:45 -0500 Subject: [PATCH] Scribunto: Add 'dotted' form of file path [#353] --- .../gplx/xowa/xtns/scribunto/Scrib_fsys_mgr.java | 14 ++++++++++++-- .../xowa/xtns/scribunto/Scrib_fsys_mgr_tst.java | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr.java index b76efe66e..8b96c85ff 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr.java @@ -45,9 +45,19 @@ public class Scrib_fsys_mgr { Io_url fil = fils[i]; if (!String_.Eq(fil.Ext(), ".lua")) continue; // ignore readme.txt, readme gplx.core.ios.Io_fil fil_itm = new gplx.core.ios.Io_fil(fil, null); - rv.Add_if_dupe_use_1st(fil.NameOnly(), fil_itm); - rv.Add_if_dupe_use_1st(String_.Replace(String_.DelEndIf(fil.GenRelUrl_orEmpty(script_dir), ".lua"), "\\", "/"), fil_itm); + // Scribunto allows multiple ways of lookup; for example, "a/b/c.lua" + // * "c" + // * "a/b/c" + // * "a.b.c" + String rel_path = fil.GenRelUrl_orEmpty(script_dir); // get rel path; EX: "C:\xowa\a\b.lua" -> "a\b.lua" + if (gplx.core.envs.Op_sys.Cur().Tid_is_wnt()) // if windows, replace "\" + rel_path = String_.Replace(rel_path, fil.Info().DirSpr(), "/"); + rel_path = String_.DelEndIf(rel_path, ".lua"); // remove ".lua" + rv.Add_if_dupe_use_1st(fil.NameOnly(), fil_itm); // add filename only (no extension); EX: "c" + rv.Add_if_dupe_use_1st(rel_path, fil_itm); // add relpath; EX: "a/b/c" + rv.Add_if_dupe_use_1st(String_.Replace(rel_path, "/", "."), fil_itm); // add relpath in dotted form; EX: "a.b.c" } + return rv; } public void Shrink() { diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr_tst.java index f10dd207a..c5256f29b 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_fsys_mgr_tst.java @@ -25,7 +25,9 @@ public class Scrib_fsys_mgr_tst { , "ustring/normalization-data.lua" , "ustring/README" ); - fxt.Test_exists_y("mw", "mw.ustring", "ustring", "ustring/normalization-data"); + fxt.Test_exists_y("mw", "mw.ustring", "ustring", "normalization-data"); + fxt.Test_exists_y("ustring/ustring", "ustring/normalization-data"); + fxt.Test_exists_y("ustring.ustring", "ustring.normalization-data"); fxt.Test_exists_n("README"); } }