1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

v2.11.1.1

This commit is contained in:
gnosygnu
2015-11-01 20:50:05 -05:00
parent 4f43f51b18
commit b990ec409f
858 changed files with 6758 additions and 4187 deletions

View File

@@ -169,7 +169,7 @@ public class Scrib_core {
func_args = Scrib_kv_utl_.base1_many_(proc);
func_rslt = engine.CallFunction(lib_mw.Mod().Fncs_get_id("executeFunction"), func_args); // call function now
String rslt = Scrib_kv_utl_.Val_to_str(func_rslt, 0); // rslt expects an array with 1 scalar value
bfr.Add_str(rslt);
bfr.Add_str_u8(rslt);
// byte[] rslt_bry = Bry_.new_u8(rslt); // CHART
// gplx.xowa.parsers.xndes.Xop_xnde_tkn.Hack_ctx = ctx;
// bfr.Add(rslt_bry);

View File

@@ -31,7 +31,7 @@ public class Scrib_fsys_mgr {
public String Get_or_null(String name) {
if (libs == null) libs = libs_init(script_dir);
Object lib_fil_obj = libs.Get_by(name); if (lib_fil_obj == null) return null;
gplx.ios.Io_fil lib_fil = (gplx.ios.Io_fil)lib_fil_obj;
gplx.core.ios.Io_fil lib_fil = (gplx.core.ios.Io_fil)lib_fil_obj;
String lib_data = lib_fil.Data();
if (lib_data == null) {
lib_data = Io_mgr.Instance.LoadFilStr(lib_fil.Url());
@@ -46,7 +46,7 @@ public class Scrib_fsys_mgr {
for (int i = 0; i < fils_len; i++) {
Io_url fil = fils[i];
if (!String_.Eq(fil.Ext(), ".lua")) continue; // ignore readme.txt, readme
gplx.ios.Io_fil fil_itm = new gplx.ios.Io_fil(fil, null);
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);
}
@@ -55,7 +55,7 @@ public class Scrib_fsys_mgr {
public void Shrink() {
int len = libs.Count();
for (int i = 0; i < len; i++) {
gplx.ios.Io_fil fil = (gplx.ios.Io_fil)libs.Get_at(i);
gplx.core.ios.Io_fil fil = (gplx.core.ios.Io_fil)libs.Get_at(i);
fil.Url_(null).Data_(null);
}
}

View File

@@ -58,10 +58,10 @@ public class Scrib_invoke_func extends Pf_func_base {
if (invoke_wkr != null)
invoke_wkr.Eval_end(ctx.Cur_page(), mod_name, fnc_name, log_time_bgn);
}
catch (Exception e) {
Error(bfr, wiki.Msg_mgr(), e);
catch (Throwable e) {
Err err = Err_.cast_or_make(e);
bfr.Add(Html_tag_.Comm_bgn).Add_str(err.To_str__full()).Add(Html_tag_.Comm_end);
Error(bfr, wiki.Msg_mgr(), err);
bfr.Add(Html_tag_.Comm_bgn).Add_str_u8(err.To_str__full()).Add(Html_tag_.Comm_end);
Scrib_err_filter_mgr err_filter_mgr = invoke_wkr == null ? null : invoke_wkr.Err_filter_mgr();
if ( err_filter_mgr == null // no err_filter_mgr defined;
|| err_filter_mgr.Count_eq_0( ) // err_filter_mgr exists, but no definitions
@@ -70,7 +70,7 @@ public class Scrib_invoke_func extends Pf_func_base {
Scrib_core.Core_invalidate_when_page_changes(); // NOTE: invalidate core when page changes, not for rest of page, else page with many errors will be very slow due to multiple invalidations; PAGE:th.d:all; DATE:2014-10-03
}
}
public static void Error(Bry_bfr bfr, Xow_msg_mgr msg_mgr, Exception e) {Error(bfr, msg_mgr, Err_.cast_or_make(e).To_str__top_wo_args());}// NOTE: must use "short" error message to show in wikitext; DATE:2015-07-27
public static void Error(Bry_bfr bfr, Xow_msg_mgr msg_mgr, Err err) {Error(bfr, msg_mgr, Err_.cast_or_make(err).To_str__top_wo_args());}// NOTE: must use "short" error message to show in wikitext; DATE:2015-07-27
public static void Error(Bry_bfr bfr, Xow_msg_mgr msg_mgr, String error) {
byte[] script_error_msg = msg_mgr.Val_by_id(Xol_msg_itm_.Id_scribunto_parser_error);
error_fmtr.Bld_bfr_many(bfr, script_error_msg, error);

View File

@@ -88,7 +88,7 @@ public class Scrib_invoke_func_fxt {
fxt.Test_parse_page_tmpl_str(raw, tmp_bfr.To_str_and_clear());
}
public void Test_error(Exception e, String expd) {
Scrib_invoke_func.Error(tmp_bfr, fxt.Wiki().Msg_mgr(), e);
Scrib_invoke_func.Error(tmp_bfr, fxt.Wiki().Msg_mgr(), Err_.cast_or_make(e));
Tfds.Eq_str(expd, tmp_bfr.To_str_and_clear(), "error");
}
public void Test_lib_proc(Scrib_lib lib, String func_name, Object[] args, String expd) {Test_lib_proc_kv(lib, func_name, Scrib_kv_utl_.base1_many_(args), expd);}
@@ -138,7 +138,7 @@ public class Scrib_invoke_func_fxt {
for (int i = 0; i < len; ++i) {
if (i != 0) bfr.Add_byte(Byte_ascii.Semic);
KeyVal kv = ary[i];
bfr.Add_str(Object_.Xto_str_strict_or_null_mark(kv.Val()));
bfr.Add_str_u8(Object_.Xto_str_strict_or_null_mark(kv.Val()));
}
return bfr.To_str_and_clear();
}
@@ -201,11 +201,11 @@ class Scrib_lua_rsp_bldr {
private void Bld_bool(Bry_bfr bfr, boolean v) {bfr.Add_str_a7("b:").Add_int_fixed(v ? 1 : 0, 1).Add_byte(Byte_ascii.Semic);}
private void Bld_int(Bry_bfr bfr, int v) {bfr.Add_str_a7("i:").Add_int_variable(v).Add_byte(Byte_ascii.Semic);}
private void Bld_double(Bry_bfr bfr, double v) {bfr.Add_str_a7("d:").Add_double(v).Add_byte(Byte_ascii.Semic);}
private void Bld_str(Bry_bfr bfr, String v) {bfr.Add_str_a7("s:").Add_int_variable(Bry_.new_u8(v).length).Add_str(":\"").Add_str(v).Add_str("\";");} // NOTE: must use Bry_.new_u8(v).length to calculate full bry len
private void Bld_str(Bry_bfr bfr, String v) {bfr.Add_str_a7("s:").Add_int_variable(Bry_.new_u8(v).length).Add_str_a7(":\"").Add_str_a7(v).Add_str_a7("\";");} // NOTE: must use Bry_.new_u8(v).length to calculate full bry len
private void Bld_fnc(Bry_bfr bfr, Scrib_lua_proc v) {bfr.Add_str_a7("O:42:\"Scribunto_LuaStandaloneInterpreterFunction\":1:{s:2:\"id\";i:").Add_int_variable(v.Id()).Add_byte(Byte_ascii.Semic).Add_byte(Byte_ascii.Curly_end);}
private void Bld_kv_ary(Bry_bfr bfr, KeyVal[] ary) {
int len = ary.length;
bfr.Add_str_a7("a:").Add_int_variable(len).Add_str(":{");
bfr.Add_str_a7("a:").Add_int_variable(len).Add_str_a7(":{");
for (int i = 0; i < len; i++) {
KeyVal kv = ary[i];
Bld_obj(bfr, kv.Key_as_obj());

View File

@@ -92,9 +92,9 @@ public class Scrib_proc_args {
for (int i = 0; i < len; i++) {
KeyVal kv = kvs[i];
if (i != 0) bfr.Add_byte(Byte_ascii.Amp);
bfr.Add_str(kv.Key());
bfr.Add_str_u8(kv.Key());
bfr.Add_byte(Byte_ascii.Eq);
bfr.Add_str(kv.Val_to_str_or_empty());
bfr.Add_str_u8(kv.Val_to_str_or_empty());
}
return bfr.To_bry_and_rls();
}

View File

@@ -27,12 +27,12 @@ public class Luaj_server_func_dbg extends VarArgFunction {
public Varargs invoke(Varargs args) {
int len = args.narg();
Bry_bfr bfr = Bry_bfr.new_();
bfr.Add_str("<span class='xowa_dbg' style='color:red'>");
bfr.Add_str_a7("<span class='xowa_dbg' style='color:red'>");
for (int i = 1; i <= len; ++i) {
String s = args.arg(i).toString();
bfr.Add_str(gplx.langs.htmls.Html_utl.Escape_html_as_str(s) + "&nbsp;");
bfr.Add_str_u8(gplx.langs.htmls.Html_utl.Escape_html_as_str(s) + "&nbsp;");
}
bfr.Add_str("</span><br/>");
bfr.Add_str_a7("</span><br/>");
core.Page().Html_data().Xtn_scribunto_dbg_(bfr.To_bry_and_clear());
return NONE;
}

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.xtns.scribunto.engines.process; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.engines.*;
import gplx.texts.*;
import gplx.core.texts.*;
import gplx.xowa.xtns.scribunto.libs.*;
public class Process_engine implements Scrib_engine {
private Scrib_core core; private Xoae_app app; private Scrib_xtn_mgr scrib_opts;

View File

@@ -17,10 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.xtns.scribunto.engines.process; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.engines.*;
import gplx.core.threads.*;
import gplx.texts.HexDecUtl;
import gplx.core.texts.HexDecUtl;
import gplx.xowa.xtns.scribunto.*;
import gplx.core.threads.Thread_adp_;
import gplx.ios.*;
import java.io.*;
public class Process_server implements Scrib_server {
private Process process;

View File

@@ -73,7 +73,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
Class<?> kv_val_type = kv_val.getClass();
boolean kv_val_is_array = Type_adp_.Eq(kv_val_type, KeyVal[].class);
if (print_key && !kv_val_is_array)
bfr.Add_str(kv.Key()).Add_byte(Byte_ascii.Colon);
bfr.Add_str_u8(kv.Key()).Add_byte(Byte_ascii.Colon);
if (Type_adp_.Eq(kv_val_type, Bool_.Cls_ref_type))
bfr.Add(Bool_.cast(kv_val) ? gplx.langs.jsons.Json_itm_.Bry__true : gplx.langs.jsons.Json_itm_.Bry__false);
else if (kv_val_is_array) {
@@ -86,7 +86,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
}
}
else
bfr.Add_str(kv.Val_to_str_or_empty());
bfr.Add_str_u8(kv.Val_to_str_or_empty());
}
}

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.xtns.scribunto.engines.process; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.engines.*;
import gplx.ios.*; import gplx.texts.*;
import gplx.core.ios.*; import gplx.core.texts.*;
public class Process_stream_rdr {
public Process_stream_rdr(byte[] bry_header, byte[] bry_body) {this.bry_header = bry_header; this.bry_body = bry_body;} private byte[] bry_header, bry_body;
public IoStream_stream_rdr Rdr() {return rdr;} IoStream_stream_rdr rdr = new IoStream_stream_rdr();

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.xtns.scribunto.engines.process; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.engines.*;
import org.junit.*;
import gplx.ios.*;
import gplx.core.ios.*;
public class Process_stream_rdr_tst {
@Before public void init() {fxt.Clear();} Scrib_lua_srl_fxt fxt = new Scrib_lua_srl_fxt();
@Test public void Body_basic() {

View File

@@ -142,17 +142,17 @@ public class Scrib_lib_mw implements Scrib_lib {
return invk.Args_get_by_key(src, Bry_.To_a7_bry(idx + 1, 1));
}
private static boolean Verify_arg_key(byte[] src, int idx, Arg_nde_tkn nde) {
int key_int = Bry_.NotFound;
int key_int = Bry_find_.Not_found;
byte[] key_dat_ary = nde.Key_tkn().Dat_ary();
if (Env_.Mode_testing() && src == null) // some tests will always pass a null src;
key_int = Bry_.To_int_or(key_dat_ary, 0, key_dat_ary.length, Bry_.NotFound);
key_int = Bry_.To_int_or(key_dat_ary, 0, key_dat_ary.length, Bry_find_.Not_found);
else {
if (Bry_.Len_eq_0(key_dat_ary)) // should be called by current context;
key_int = Bry_.To_int_or(src, nde.Key_tkn().Src_bgn(), nde.Key_tkn().Src_end(), Bry_.NotFound);
key_int = Bry_.To_int_or(src, nde.Key_tkn().Src_bgn(), nde.Key_tkn().Src_end(), Bry_find_.Not_found);
else // will be called by parent context; note that this calls Xot_defn_tmpl_.Make_itm which sets a key_dat_ary; DATE:2013-09-23
key_int = Bry_.To_int_or(key_dat_ary, 0, key_dat_ary.length, Bry_.NotFound);
key_int = Bry_.To_int_or(key_dat_ary, 0, key_dat_ary.length, Bry_find_.Not_found);
}
if (key_int == Bry_.NotFound) // key is not-numeric
if (key_int == Bry_find_.Not_found) // key is not-numeric
return false;
else // key is numeric
return idx == key_int;
@@ -286,7 +286,7 @@ public class Scrib_lib_mw implements Scrib_lib {
byte[] fnc_name = fnc_name_ref.Val();
int fnc_name_len = fnc_name.length;
int fnc_name_colon_pos = Bry_find_.Find_fwd(fnc_name, Byte_ascii.Colon, 0, fnc_name_len);
if (fnc_name_colon_pos == Bry_.NotFound) {
if (fnc_name_colon_pos == Bry_find_.Not_found) {
KeyVal arg_argx = (KeyVal)rv.Get_at(0);
argx_ref.Val_(arg_argx.Val_to_bry());
rv.Del_at(0);

View File

@@ -119,11 +119,11 @@ public class Scrib_lib_title implements Scrib_lib {
String anchor_str = args.Cast_str_or_null(2);
String xwiki_str = args.Cast_str_or_null(3);
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_k004();
if (xwiki_str != null) tmp_bfr.Add_str(xwiki_str).Add_byte(Byte_ascii.Colon);
if (xwiki_str != null) tmp_bfr.Add_str_u8(xwiki_str).Add_byte(Byte_ascii.Colon);
if (Bry_.Len_gt_0(ns_bry)) // only prefix ns if available; EX:"Template:Title"; else will get ":Title"; DATE:2014-10-30
tmp_bfr.Add(ns_bry).Add_byte(Byte_ascii.Colon);
tmp_bfr.Add_str(ttl_str);
if (anchor_str != null) tmp_bfr.Add_byte(Byte_ascii.Hash).Add_str(anchor_str);
tmp_bfr.Add_str_u8(ttl_str);
if (anchor_str != null) tmp_bfr.Add_byte(Byte_ascii.Hash).Add_str_u8(anchor_str);
Xoa_ttl ttl = Xoa_ttl.parse(wiki, tmp_bfr.To_bry_and_rls());
if (ttl == null) return rslt.Init_obj(null); // invalid title; exit;
return rslt.Init_obj(GetInexpensiveTitleData(ttl));

View File

@@ -63,7 +63,7 @@ public class Scrib_lib_ustring implements Scrib_lib {
return rslt.Init_many_objs(bgn_codepoint_idx + Scrib_lib_ustring.Base1, bgn_codepoint_idx + Scrib_lib_ustring.Base1 - 1);
if (plain) {
int pos = String_.FindFwd(text_str, regx, bgn_codepoint_idx);
boolean found = pos != Bry_.NotFound;
boolean found = pos != Bry_find_.Not_found;
return found
? rslt.Init_many_objs(pos + Scrib_lib_ustring.Base1, pos + Scrib_lib_ustring.Base1 + String_.Len(regx) - Scrib_lib_ustring.End_adj)
: rslt.Init_ary_empty()
@@ -224,14 +224,14 @@ class Scrib_lib_ustring_gsub_mgr {
for (int i = 0; i < len; i++) {
if (limit > -1 && repl_count == limit) break;
Regx_match rslt = rslts[i];
tmp_bfr.Add_str(String_.Mid(text, pos, rslt.Find_bgn())); // NOTE: regx returns char pos (not bry); must add as String, not bry; DATE:2013-07-17
tmp_bfr.Add_str_u8(String_.Mid(text, pos, rslt.Find_bgn())); // NOTE: regx returns char pos (not bry); must add as String, not bry; DATE:2013-07-17
Exec_repl_itm(tmp_bfr, repl_tid, repl_bry, text, rslt);
pos = rslt.Find_end();
++repl_count;
}
int text_len = String_.Len(text);
if (pos < text_len)
tmp_bfr.Add_str(String_.Mid(text, pos, text_len)); // NOTE: regx returns char pos (not bry); must add as String, not bry; DATE:2013-07-17
tmp_bfr.Add_str_u8(String_.Mid(text, pos, text_len)); // NOTE: regx returns char pos (not bry); must add as String, not bry; DATE:2013-07-17
return tmp_bfr.To_str_and_clear();
}
private void Exec_repl_itm(Bry_bfr tmp_bfr, byte repl_tid, byte[] repl_bry, String text, Regx_match match) {
@@ -257,7 +257,7 @@ class Scrib_lib_ustring_gsub_mgr {
idx -= List_adp_.Base1;
if (idx < match.Groups().length) { // retrieve numbered capture; TODO: support more than 9 captures
Regx_group grp = match.Groups()[idx];
tmp_bfr.Add_str(String_.Mid(text, grp.Bgn(), grp.End())); // NOTE: grp.Bgn() / .End() is for String pos (bry pos will fail for utf8 strings)
tmp_bfr.Add_str_u8(String_.Mid(text, grp.Bgn(), grp.End())); // NOTE: grp.Bgn() / .End() is for String pos (bry pos will fail for utf8 strings)
}
else {
tmp_bfr.Add_byte(Byte_ascii.Percent);
@@ -297,7 +297,7 @@ class Scrib_lib_ustring_gsub_mgr {
String find_str = String_.Mid(text, match_bgn, match_end); // NOTE: rslt.Bgn() / .End() is for String pos (bry pos will fail for utf8 strings)
Object actl_repl_obj = repl_hash.Get_by(find_str);
if (actl_repl_obj == null) // match found, but no replacement specified; EX:"abc", "[ab]", "a:A"; "b" in regex but not in tbl; EX:d:DVD; DATE:2014-03-31
tmp_bfr.Add_str(find_str);
tmp_bfr.Add_str_u8(find_str);
else
tmp_bfr.Add((byte[])actl_repl_obj);
break;
@@ -319,7 +319,7 @@ class Scrib_lib_ustring_gsub_mgr {
}
}
KeyVal[] rslts = core.Interpreter().CallFunction(repl_func.Id(), luacbk_args);
tmp_bfr.Add_str(Scrib_kv_utl_.Val_to_str(rslts, 0));
tmp_bfr.Add_str_u8(Scrib_kv_utl_.Val_to_str(rslts, 0));
break;
}
default: throw Err_.new_unhandled(repl_tid);

View File

@@ -79,7 +79,7 @@ public class Scrib_lib_wikibase implements Scrib_lib {
}
public boolean ResolvePropertyId(Scrib_proc_args args, Scrib_proc_rslt rslt) {
byte[] prop = args.Pull_bry(0); if (Bry_.Len_eq_0(prop)) return rslt.Init_ary_empty();
Wdata_doc wdoc = Get_wdoc(Bry_.Add(Byte_ascii.Ltr_p, prop)); if (wdoc == null) return rslt.Init_ary_empty();
Wdata_doc wdoc = Get_wdoc(prop); if (wdoc == null) return rslt.Init_ary_empty(); // prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27
return rslt.Init_obj(wdoc.Label_list__get_or_fallback(core.Lang()));
}
public boolean GetSiteLinkPageName(Scrib_proc_args args, Scrib_proc_rslt rslt) {

View File

@@ -406,12 +406,12 @@ class Scrib_lib_wikibase_srl_fxt {
}
private void Xto_str(Bry_bfr bfr, KeyVal kv, int depth) {
bfr.Add_byte_repeat(Byte_ascii.Space, depth * 2);
bfr.Add_str(kv.Key()).Add_byte(Byte_ascii.Colon);
bfr.Add_str_u8(kv.Key()).Add_byte(Byte_ascii.Colon);
Object kv_val = kv.Val();
if (kv_val == null) {bfr.Add_str_a7("null").Add_byte_nl(); return;}
Class<?> kv_val_cls = kv_val.getClass();
if (Type_adp_.Eq(kv_val_cls, KeyVal[].class)) {bfr.Add_byte_nl(); Xto_str(bfr, (KeyVal[])kv_val, depth + 1);}
else if (Type_adp_.Eq(kv_val_cls, KeyVal[].class)) {bfr.Add_byte_nl(); Xto_str(bfr, (KeyVal)kv_val, depth + 1);}
else bfr.Add_byte(Byte_ascii.Apos).Add_str(Object_.Xto_str_strict_or_empty(kv_val)).Add_byte(Byte_ascii.Apos).Add_byte_nl();
else bfr.Add_byte(Byte_ascii.Apos).Add_str_u8(Object_.Xto_str_strict_or_empty(kv_val)).Add_byte(Byte_ascii.Apos).Add_byte_nl();
}
}

View File

@@ -87,6 +87,6 @@ public class Scrib_lib_wikibase_tst {
}
@Test public void ResolvePropertyId() {
wdata_fxt.Init_pages_add(wdata_fxt.Wdoc_bldr("Property:p2").Add_label("zh-hans", "prop_a").Xto_wdoc());
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_resolvePropertyId, Object_.Ary("2"), "prop_a");
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_resolvePropertyId, Object_.Ary("p2"), "prop_a");
}
}