1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-10-27 20:34:16 +00:00

Xomw: Change Php classes to Xophp; move to root namespace

This commit is contained in:
gnosygnu 2017-02-24 07:56:49 -05:00
parent a8c7f27ff5
commit d8c2eaba1d
42 changed files with 408 additions and 864 deletions

View File

@ -33,8 +33,8 @@ public class Swt_app_main {
public static void main(String[] args) {
// Drag_drop();
// List_fonts();
keystrokes(args);
// Permission_denied();
// keystrokes(args);
Permission_denied();
// Combo_default();
// Combo_composite();
}

View File

@ -44,14 +44,21 @@ public class Http_download_wkr__jre extends Http_download_wkr__base {
HttpURLConnection src_conn = null;
try {
// open connection
Gfo_usr_dlg_.Instance.Warn_many("", "", "a1");
src_conn = (HttpURLConnection)src_url_itm.openConnection();
Gfo_usr_dlg_.Instance.Warn_many("", "", "a2");
if (prog_resumed)
src_conn.addRequestProperty("Range", "bytes=" + Long_.To_str(prog_data_cur) + "-");
Gfo_usr_dlg_.Instance.Warn_many("", "", "a3");
src_conn.setReadTimeout(10000); // explicitly set timeout; NOTE:needed on Mac OS X, else error never thrown; DATE:2016-09-03
Gfo_usr_dlg_.Instance.Warn_many("", "", "a4");
src_conn.connect();
Gfo_usr_dlg_.Instance.Warn_many("", "", "a5");
// check response code
Gfo_usr_dlg_.Instance.Warn_many("", "", "a6");
int response_code = src_conn.getResponseCode();
Gfo_usr_dlg_.Instance.Warn_many("", "", "a7");
if (prog_resumed) {
if (response_code != HttpURLConnection.HTTP_PARTIAL) {
try {if (trg_stream != null) trg_stream.close();}

View File

@ -1,213 +0,0 @@
100_core/src/gplx/Array_.java | 20 +-
100_core/src/gplx/Array__tst.java | 20 +-
100_core/src/gplx/Bool_.java | 20 +-
100_core/src/gplx/Bool__tst.java | 20 +-
100_core/src/gplx/Bry_.java | 20 +-
100_core/src/gplx/Bry__tst.java | 20 +-
100_core/src/gplx/Bry_bfr.java | 20 +-
100_core/src/gplx/Bry_bfr_.java | 20 +-
100_core/src/gplx/Bry_bfr_tst.java | 20 +-
100_core/src/gplx/Bry_find_.java | 20 +-
100_core/src/gplx/Bry_find__tst.java | 20 +-
100_core/src/gplx/Bry_fmt.java | 20 +-
100_core/src/gplx/Bry_split_.java | 20 +-
100_core/src/gplx/Bry_split__tst.java | 20 +-
100_core/src/gplx/Byte_.java | 20 +-
100_core/src/gplx/Byte__tst.java | 20 +-
100_core/src/gplx/Byte_ascii.java | 20 +-
100_core/src/gplx/Cancelable.java | 20 +-
100_core/src/gplx/Cancelable_.java | 20 +-
100_core/src/gplx/Char_.java | 20 +-
100_core/src/gplx/CompareAble.java | 20 +-
100_core/src/gplx/CompareAble_.java | 20 +-
100_core/src/gplx/DateAdp.java | 20 +-
100_core/src/gplx/DateAdp_.java | 20 +-
100_core/src/gplx/DateAdp__tst.java | 20 +-
100_core/src/gplx/Datetime_now.java | 20 +-
100_core/src/gplx/Decimal_adp.java | 20 +-
100_core/src/gplx/Decimal_adp_.java | 20 +-
100_core/src/gplx/Decimal_adp__tst.java | 20 +-
100_core/src/gplx/Double_.java | 20 +-
100_core/src/gplx/Double__tst.java | 20 +-
100_core/src/gplx/Enm_.java | 20 +-
100_core/src/gplx/Err.java | 20 +-
100_core/src/gplx/Err_.java | 20 +-
100_core/src/gplx/Err_tst.java | 20 +-
100_core/src/gplx/Float_.java | 20 +-
100_core/src/gplx/GfoMsg.java | 20 +-
100_core/src/gplx/GfoMsgUtl.java | 20 +-
100_core/src/gplx/GfoMsg_.java | 20 +-
100_core/src/gplx/GfoMsg_tst.java | 20 +-
100_core/src/gplx/GfoTemplate.java | 20 +-
100_core/src/gplx/GfoTemplateFactory.java | 20 +-
100_core/src/gplx/Gfo_evt_itm.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_owner.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_tst.java | 20 +-
100_core/src/gplx/Gfo_invk.java | 20 +-
100_core/src/gplx/Gfo_invk_.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd_mgr.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd_mgr_owner.java | 20 +-
100_core/src/gplx/Gfo_invk_root_wkr.java | 20 +-
100_core/src/gplx/Gfo_invk_to_str.java | 20 +-
100_core/src/gplx/Gfo_log.java | 20 +-
100_core/src/gplx/Gfo_log_.java | 20 +-
100_core/src/gplx/Gfo_log_bfr.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui_test.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log_base.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg_base.java | 20 +-
100_core/src/gplx/GfsCtx.java | 20 +-
100_core/src/gplx/Guid_adp.java | 20 +-
100_core/src/gplx/Guid_adp_.java | 20 +-
100_core/src/gplx/Guid_adp__tst.java | 20 +-
100_core/src/gplx/Hash_adp.java | 20 +-
100_core/src/gplx/Hash_adp_.java | 20 +-
100_core/src/gplx/Hash_adp_bry.java | 20 +-
100_core/src/gplx/Hash_adp_bry_tst.java | 20 +-
100_core/src/gplx/Int_.java | 20 +-
100_core/src/gplx/Int__tst.java | 20 +-
100_core/src/gplx/Internal.java | 20 +-
100_core/src/gplx/Io_mgr.java | 20 +-
100_core/src/gplx/Io_mgr__tst.java | 20 +-
100_core/src/gplx/Io_url.java | 20 +-
100_core/src/gplx/Io_url_.java | 20 +-
100_core/src/gplx/Io_url__tst.java | 20 +-
100_core/src/gplx/Keyval.java | 20 +-
100_core/src/gplx/Keyval_.java | 20 +-
100_core/src/gplx/Keyval_hash.java | 20 +-
100_core/src/gplx/Keyval_list.java | 20 +-
100_core/src/gplx/List_adp.java | 20 +-
100_core/src/gplx/List_adp_.java | 20 +-
100_core/src/gplx/List_adp_base.java | 20 +-
100_core/src/gplx/List_adp_tst.java | 20 +-
100_core/src/gplx/Long_.java | 20 +-
100_core/src/gplx/Long__tst.java | 20 +-
100_core/src/gplx/Math_.java | 20 +-
100_core/src/gplx/Math__tst.java | 20 +-
100_core/src/gplx/New.java | 20 +-
100_core/src/gplx/ObjAry.java | 20 +-
100_core/src/gplx/Object_.java | 20 +-
100_core/src/gplx/Object__tst.java | 20 +-
100_core/src/gplx/Ordered_hash.java | 20 +-
100_core/src/gplx/Ordered_hash_.java | 20 +-
100_core/src/gplx/Ordered_hash_base.java | 20 +-
100_core/src/gplx/Ordered_hash_tst.java | 20 +-
100_core/src/gplx/RandomAdp.java | 20 +-
100_core/src/gplx/RandomAdp_.java | 20 +-
100_core/src/gplx/Rls_able.java | 20 +-
100_core/src/gplx/Rls_able_.java | 20 +-
100_core/src/gplx/Short_.java | 20 +-
100_core/src/gplx/String_.java | 20 +-
100_core/src/gplx/String__tst.java | 20 +-
100_core/src/gplx/Tfds.java | 20 +-
100_core/src/gplx/TfdsTstr_fxt.java | 20 +-
100_core/src/gplx/Time_span.java | 20 +-
100_core/src/gplx/Time_span_.java | 20 +-
100_core/src/gplx/To_str_able.java | 20 +-
100_core/src/gplx/To_str_able_.java | 20 +-
100_core/src/gplx/Type_adp_.java | 20 +-
100_core/src/gplx/UsrDlg.java | 20 +-
100_core/src/gplx/UsrDlg_.java | 20 +-
100_core/src/gplx/UsrMsg.java | 20 +-
100_core/src/gplx/UsrMsgWkr.java | 20 +-
100_core/src/gplx/UsrMsgWkr_.java | 20 +-
100_core/src/gplx/UsrMsgWkr_console.java | 20 +-
100_core/src/gplx/UsrMsgWkr_test.java | 20 +-
100_core/src/gplx/Virtual.java | 20 +-
100_core/src/gplx/Yn.java | 20 +-
100_core/src/gplx/core/bits/Bitmask_.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg_.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg_clearable.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_able.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_able_.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr_mgr.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr_tst.java | 20 +-
100_core/src/gplx/core/brys/Bry_err_wkr.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr_old.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr_tst.java | 20 +-
100_core/src/gplx/core/brys/Bry_split_wkr.java | 20 +-
100_core/src/gplx/core/brys/args/Bfr_arg__bry.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_ary.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_fmt.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_fmtr.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__byte.java | 20 +-
.../gplx/core/brys/args/Bfr_arg__decimal_int.java | 20 +-
100_core/src/gplx/core/brys/args/Bfr_arg__int.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__time.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__time_tst.java | 20 +-
100_core/src/gplx/core/brys/fmtrs/Bry_fmtr.java | 20 +-
.../gplx/core/brys/fmtrs/Bry_fmtr_eval_mgr.java | 20 +-
.../gplx/core/brys/fmtrs/Bry_fmtr_eval_mgr_.java | 20 +-
.../core/brys/fmtrs/Bry_fmtr_eval_mgr_gfs.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_itm.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_tst.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_vals.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bfr_fmt_arg.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bry_fmt_itm.java | 20 +-
.../src/gplx/core/brys/fmts/Bry_fmt_parser_.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bry_fmt_tst.java | 20 +-
.../gplx/core/brys/fmts/Bry_keys_parser_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_bwd_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_bwd_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_fast_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_fast_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_itm_stub.java | 20 +-
100_core/src/gplx/core/btries/Btrie_mgr.java | 20 +-
100_core/src/gplx/core/btries/Btrie_rv.java | 20 +-
100_core/src/gplx/core/btries/Btrie_slim_itm.java | 20 +-
.../src/gplx/core/btries/Btrie_slim_itm_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_slim_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_slim_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_u8_itm.java | 20 +-
100_core/src/gplx/core/btries/Btrie_u8_mgr.java | 20 +-
100_core/src/gplx/core/consoles/Console_adp.java | 20 +-
100_core/src/gplx/core/consoles/Console_adp_.java | 20 +-
.../src/gplx/core/consoles/Console_adp__mem.java | 20 +-
.../src/gplx/core/consoles/Console_adp__sys.java | 20 +-
100_core/src/gplx/core/criterias/Criteria.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_.java | 20 +-
.../src/gplx/core/criterias/Criteria_between.java | 20 +-
.../gplx/core/criterias/Criteria_bool_base.java | 20 +-
.../src/gplx/core/criterias/Criteria_comp.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_eq.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_fld.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_in.java | 20 +-
.../gplx/core/criterias/Criteria_ioItm_tst.java | 20 +-
.../src/gplx/core/criterias/Criteria_ioMatch.java | 20 +-
.../src/gplx/core/criterias/Criteria_like.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_not.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_tst.java | 20 +-
100_core/src/gplx/core/encoders/B85_fp_.java | 20 +-
100_core/src/gplx/core/encoders/B85_fp__tst.java | 20 +-
100_core/src/gplx/core/encoders/Base85_.java | 20 +-
100_core/src/gplx/core/encoders/Base85__tst.java | 20 +-
100_core/src/gplx/core/encoders/Gfo_hzip_int_.java | 20 +-
100_core/src/gplx/core/encoders/Hex_utl_.java | 20 +-
100_core/src/gplx/core/encoders/Hex_utl__tst.java | 20 +-
100_core/src/gplx/core/envs/Env_.java | 20 +-
100_core/src/gplx/core/envs/Jar_adp_.java | 20 +-
100_core/src/gplx/core/envs/Op_sys.java | 20 +-
100_core/src/gplx/core/envs/Op_sys_.java | 20 +-
100_core/src/gplx/core/envs/Process_adp.java | 20 +-
100_core/src/gplx/core/envs/Process_adp_tst.java | 20 +-
100_core/src/gplx/core/envs/Runtime_.java | 20 +-
100_core/src/gplx/core/envs/System_.java | 20 +-
100_core/src/gplx/core/errs/Err_msg.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFld.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFldList.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFldList_.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNde.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeFxt.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeList.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeList_.java | 20 [

View File

@ -13,8 +13,8 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Php_ary_ {
public static boolean Pop_bool_or_n(List_adp list) {return Bool_.Cast(List_adp_.Pop_or(list, false));}
public static byte[] Pop_bry_or_null(List_adp list) {return (byte[])List_adp_.Pop_or(list, null);}
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
public class XophpArray {
public static boolean popBoolOrN(List_adp list) {return Bool_.Cast(List_adp_.Pop_or(list, false));}
public static byte[] popBryOrNull(List_adp list) {return (byte[])List_adp_.Pop_or(list, null);}
}

View File

@ -13,8 +13,8 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Php_encode_ {
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
public class XophpEncode {
public static byte[] rawurlencode(byte[] v) {
return gplx.langs.htmls.encoders.Gfo_url_encoder_.Php_rawurlencode.Encode(v);
}

View File

@ -13,9 +13,9 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Php_math_ {
public static double Round(double v, int places) {
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
public class XophpMath {
public static double round(double v, int places) {
if (places < 0) { // -1 means round to 10; -2 means round to 100; etc..
int factor = (int)Math_.Pow(10, places * -1);
return ((int)(Math_.Round(v, 0) / factor)) * factor; // EX: ((int)Round(123, 0) / 10) * 10: 123 -> 12.3 -> 12 -> 120

View File

@ -13,11 +13,11 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
import gplx.core.btries.*; import gplx.core.brys.*;
import gplx.core.primitives.*;
public class Php_preg_ {
public static byte[][] Split(Int_list list, byte[] src, int src_bgn, int src_end, byte[] dlm, boolean extend) {
public class XophpPreg {
public static byte[][] split(Int_list list, byte[] src, int src_bgn, int src_end, byte[] dlm, boolean extend) {
// find delimiters
int dlm_len = dlm.length;
byte dlm_nth = dlm[dlm_len - 1];
@ -57,7 +57,7 @@ public class Php_preg_ {
list.Clear();
return rv;
}
public static Object Match(Btrie_slim_mgr trie, Btrie_rv trv, byte[] src, int src_bgn, int src_end) {
public static Object match(Btrie_slim_mgr trie, Btrie_rv trv, byte[] src, int src_bgn, int src_end) {
trv.Match_bgn = -1;
int cur = src_bgn;
while (cur < src_end) {
@ -73,7 +73,7 @@ public class Php_preg_ {
return null;
}
public static void Replace(Bry_tmp bry, Bry_bfr tmp, Btrie_slim_mgr find_trie, Btrie_rv trv, byte[] repl_bry) {
public static void replace(Bry_tmp bry, Bry_bfr tmp, Btrie_slim_mgr find_trie, Btrie_rv trv, byte[] repl_bry) {
byte[] src = bry.src;
int src_bgn = bry.src_bgn;
int src_end = bry.src_end;

View File

@ -0,0 +1,31 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
import org.junit.*; import gplx.core.tests.*;
public class XophpPregTest {
private final XophpPregFxt fxt = new XophpPregFxt();
@Test public void Basic() {fxt.Test_split("a''b''c" , "''", Bool_.Y, "a", "''", "b", "''", "c");}
@Test public void Extend() {fxt.Test_split("a'''b'''c" , "''", Bool_.Y, "a", "'''", "b", "'''", "c");}
@Test public void Eos() {fxt.Test_split("a''" , "''", Bool_.Y, "a", "''");}
}
class XophpPregFxt {
private final gplx.core.primitives.Int_list rv = new gplx.core.primitives.Int_list();
public void Test_split(String src, String dlm, boolean extend, String... expd) {Test_split(src, 0, String_.Len(src), dlm, extend, expd);}
public void Test_split(String src, int src_bgn, int src_end, String dlm, boolean extend, String... expd) {
byte[][] actl = XophpPreg.split(rv, Bry_.new_u8(src), src_bgn, src_end, Bry_.new_u8(dlm), extend);
Gftest.Eq__ary(expd, String_.Ary(actl), "find_failed");
}
}

View File

@ -13,15 +13,15 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
import gplx.core.btries.*;
public class Php_str_ {
public static int Strpos(byte[] src, byte find) {return Strpos(src, find, 0, src.length);}
public static int Strpos(byte[] src, byte find, int bgn, int end) {
public class XophpString {
public static int strpos(byte[] src, byte find) {return strpos(src, find, 0, src.length);}
public static int strpos(byte[] src, byte find, int bgn, int end) {
return Bry_find_.Find_fwd(src, find, bgn, end);
}
public static byte[] Substr(byte[] src, int bgn) {return Substr(src, bgn, src.length);}
public static byte[] Substr(byte[] src, int bgn, int len) {
public static byte[] substr(byte[] src, int bgn) {return substr(src, bgn, src.length);}
public static byte[] substr(byte[] src, int bgn, int len) {
int src_len = src.length;
if (bgn < 0) bgn = src_len + bgn; // handle negative
if (bgn < 0) bgn = 0; // handle out of bounds; EX: ("a", -1, -1)
@ -29,8 +29,8 @@ public class Php_str_ {
if (end > src.length) end = src.length;; // handle out of bounds;
return Bry_.Mid(src, bgn, end);
}
public static byte Substr_byte(byte[] src, int bgn) {return Substr_byte(src, bgn, src.length);}
public static byte Substr_byte(byte[] src, int bgn, int len) {
public static byte substr_byte(byte[] src, int bgn) {return substr_byte(src, bgn, src.length);}
public static byte substr_byte(byte[] src, int bgn, int len) {
int src_len = src.length;
if (src_len == 0) return Byte_ascii.Null;
if (bgn < 0) bgn = src_len + bgn; // handle negative
@ -39,7 +39,7 @@ public class Php_str_ {
if (end > src.length) end = src.length;; // handle out of bounds;
return src[bgn];
}
public static int Strspn_fwd__ary(byte[] src, boolean[] find, int bgn, int max, int src_len) {
public static int strspn_fwd__ary(byte[] src, boolean[] find, int bgn, int max, int src_len) {
if (max == -1) max = src_len;
int rv = 0;
for (int i = bgn; i < src_len; i++) {
@ -50,7 +50,7 @@ public class Php_str_ {
}
return rv;
}
public static int Strspn_fwd__byte(byte[] src, byte find, int bgn, int max, int src_len) {
public static int strspn_fwd__byte(byte[] src, byte find, int bgn, int max, int src_len) {
if (max == -1) max = src_len;
int rv = 0;
for (int i = bgn; i < src_len; i++) {
@ -61,7 +61,7 @@ public class Php_str_ {
}
return rv;
}
public static int Strspn_fwd__space_or_tab(byte[] src, int bgn, int max, int src_len) {
public static int strspn_fwd__space_or_tab(byte[] src, int bgn, int max, int src_len) {
if (max == -1) max = src_len;
int rv = 0;
for (int i = bgn; i < src_len; i++) {
@ -78,7 +78,7 @@ public class Php_str_ {
}
return rv;
}
public static int Strspn_bwd__byte(byte[] src, byte find, int bgn, int max) {
public static int strspn_bwd__byte(byte[] src, byte find, int bgn, int max) {
if (max == -1) max = Int_.Max_value;
int rv = 0;
for (int i = bgn - 1; i > -1; i--) {
@ -89,7 +89,7 @@ public class Php_str_ {
}
return rv;
}
public static int Strspn_bwd__ary(byte[] src, boolean[] find, int bgn, int max) {
public static int strspn_bwd__ary(byte[] src, boolean[] find, int bgn, int max) {
if (max == -1) max = Int_.Max_value;
int rv = 0;
for (int i = bgn - 1; i > -1; i--) {
@ -100,7 +100,7 @@ public class Php_str_ {
}
return rv;
}
public static int Strspn_bwd__space_or_tab(byte[] src, int bgn, int max) {
public static int strspn_bwd__space_or_tab(byte[] src, int bgn, int max) {
if (max == -1) max = Int_.Max_value;
int rv = 0;
for (int i = bgn - 1; i > -1; i--) {
@ -117,7 +117,7 @@ public class Php_str_ {
}
return rv;
}
public static byte[] Strtr(byte[] src, Btrie_slim_mgr trie, Bry_bfr tmp, Btrie_rv trv) {
public static byte[] strtr(byte[] src, Btrie_slim_mgr trie, Bry_bfr tmp, Btrie_rv trv) {
boolean dirty = false;
int src_bgn = 0;
int src_end = src.length;

View File

@ -0,0 +1,85 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
import org.junit.*; import gplx.core.tests.*; import gplx.core.btries.*;
public class XophpStringTest {
private final XophpStringFxt fxt = new XophpStringFxt();
@Test public void Strspn_fwd__byte() {
fxt.Test_strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 0, -1, 5); // basic
fxt.Test_strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 1, -1, 4); // bgn
fxt.Test_strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 1, 2, 2); // max
}
@Test public void Strspn_fwd__space_or_tab() {
fxt.Test_strspn_fwd__space_or_tab(" a", 0, -1, 5); // basic
fxt.Test_strspn_fwd__space_or_tab(" a", 1, -1, 4); // bgn
fxt.Test_strspn_fwd__space_or_tab(" a", 1, 2, 2); // max
}
@Test public void Strspn_bwd__byte() {
fxt.Test_strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 5, -1, 5); // basic
fxt.Test_strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 4, -1, 4); // bgn
fxt.Test_strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 4, 2, 2); // max
}
@Test public void Strspn_bwd__space_or_tab() {
fxt.Test_strspn_bwd__space_or_tab(" a", 5, -1, 5); // basic
fxt.Test_strspn_bwd__space_or_tab(" a", 4, -1, 4); // bgn
fxt.Test_strspn_bwd__space_or_tab(" a", 4, 2, 2); // max
}
@Test public void Substr__bgn_is_neg() {
fxt.Test_substr("abcde" , -1, "e");
fxt.Test_substr("abcde" , -3, -1, "cd");
}
@Test public void Strtr() {
fxt.Init_strtr_by_trie("01", "89", "02", "79");
fxt.Test_strtr_by_trie("abc" , "abc"); // found=none
fxt.Test_strtr_by_trie("ab_01_cd" , "ab_89_cd"); // found=one
fxt.Test_strtr_by_trie("ab_01_cd_02_ef", "ab_89_cd_79_ef"); // found=many
fxt.Test_strtr_by_trie("01_ab" , "89_ab"); // BOS
fxt.Test_strtr_by_trie("ab_01" , "ab_89"); // EOS
}
}
class XophpStringFxt {
public void Test_strspn_fwd__byte(String src_str, byte find, int bgn, int max, int expd) {
byte[] src_bry = Bry_.new_u8(src_str);
Gftest.Eq__int(expd, XophpString.strspn_fwd__byte(src_bry, find, bgn, max, src_bry.length));
}
public void Test_strspn_fwd__space_or_tab(String src_str, int bgn, int max, int expd) {
byte[] src_bry = Bry_.new_u8(src_str);
Gftest.Eq__int(expd, XophpString.strspn_fwd__space_or_tab(src_bry, bgn, max, src_bry.length));
}
public void Test_strspn_bwd__byte(String src_str, byte find, int bgn, int max, int expd) {
Gftest.Eq__int(expd, XophpString.strspn_bwd__byte(Bry_.new_u8(src_str), find, bgn, max));
}
public void Test_strspn_bwd__space_or_tab(String src_str, int bgn, int max, int expd) {
Gftest.Eq__int(expd, XophpString.strspn_bwd__space_or_tab(Bry_.new_u8(src_str), bgn, max));
}
public void Test_substr(String src_str, int bgn, String expd) {Test_substr(src_str, bgn, String_.Len(src_str), expd);}
public void Test_substr(String src_str, int bgn, int len, String expd) {
Gftest.Eq__str(expd, XophpString.substr(Bry_.new_u8(src_str), bgn, len));
}
private Btrie_slim_mgr strtr_trie;
public void Init_strtr_by_trie(String... kvs) {
if (strtr_trie == null) strtr_trie = Btrie_slim_mgr.cs();
int len = kvs.length;
for (int i = 0; i < len; i += 2) {
strtr_trie.Add_str_str(kvs[i], kvs[i + 1]);
}
}
public void Test_strtr_by_trie(String src, String expd) {
Bry_bfr tmp = Bry_bfr_.New();
Btrie_rv trv = new Btrie_rv();
Gftest.Eq__str(expd, XophpString.strtr(Bry_.new_u8(src), strtr_trie, tmp, trv));
}
}

View File

@ -13,8 +13,8 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Php_utl_ {
package gplx.xowa.mediawiki; import gplx.*; import gplx.xowa.*;
public class XophpUtility {
public static boolean empty(byte[] v) {return v == null || v.length == 0;}
public static boolean empty(boolean v) {return v == false;}
public static boolean empty(int v) {return v == 0;}
@ -37,6 +37,7 @@ public class Php_utl_ {
}
return true;
}
public static final int Null_int = Int_.Max_value;
public static final double Null_double = Double_.MinValue;
public static final byte[] Null_bry = null;

View File

@ -2596,11 +2596,11 @@ public class XomwGlobalFunctions {
// * @return String
// */
// function wfShellWikiCmd( $script, array $parameters = [], array $options = [] ) {
// global $wgPhpCli;
// global $wgXophpCli;
// // Give site config file a chance to run the script in a wrapper.
// // The caller may likely want to call wfBasename() on $script.
// Hooks::run( 'wfShellWikiCmd', [ &$script, &$parameters, &$options ] );
// $cmd = isset( $options['php'] ) ? [ $options['php'] ] : [ $wgPhpCli ];
// $cmd = isset( $options['php'] ) ? [ $options['php'] ] : [ $wgXophpCli ];
// if ( isset( $options['wrapper'] ) ) {
// $cmd[] = $options['wrapper'];
// }

View File

@ -19,7 +19,6 @@ import gplx.langs.htmls.*;
import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.linkers.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*; import gplx.xowa.mediawiki.includes.media.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.utls.*;
/* TODO.XO
* thumb = $file->getUnscaledThumb(handlerParams);
* P8: wfMessage
@ -342,16 +341,16 @@ public class XomwLinker {
// Clean up parameters
int page = handlerParams.page;
if (!Php_utl_.isset(frameParams.align)) {
if (!XophpUtility.isset(frameParams.align)) {
frameParams.align = Bry_.Empty;
}
if (!Php_utl_.isset(frameParams.alt)) {
if (!XophpUtility.isset(frameParams.alt)) {
frameParams.alt = Bry_.Empty;
}
if (!Php_utl_.isset(frameParams.title)) {
if (!XophpUtility.isset(frameParams.title)) {
frameParams.title = Bry_.Empty;
}
if (!Php_utl_.isset(frameParams.cls)) {
if (!XophpUtility.isset(frameParams.cls)) {
frameParams.cls = Bry_.Empty;
}
@ -362,8 +361,8 @@ public class XomwLinker {
postfix = Gfh_tag_.Div_rhs;
frameParams.align = Align__frame__none;
}
if (file != null && !Php_utl_.isset(handlerParams.width)) {
if (Php_utl_.isset(handlerParams.height) && file.isVectorized()) {
if (file != null && !XophpUtility.isset(handlerParams.width)) {
if (XophpUtility.isset(handlerParams.height) && file.isVectorized()) {
// If its a vector image, and user only specifies height
// we don't want it to be limited by its "normal" width.
handlerParams.width = env.Global__wgSVGMaxSize;
@ -372,13 +371,13 @@ public class XomwLinker {
handlerParams.width = file.getWidth(page);
}
if ( Php_utl_.isset(frameParams.thumbnail)
|| Php_utl_.isset(frameParams.manualthumb)
|| Php_utl_.isset(frameParams.framed)
|| Php_utl_.isset(frameParams.frameless)
|| !Php_utl_.istrue(handlerParams.width)
if ( XophpUtility.isset(frameParams.thumbnail)
|| XophpUtility.isset(frameParams.manualthumb)
|| XophpUtility.isset(frameParams.framed)
|| XophpUtility.isset(frameParams.frameless)
|| !XophpUtility.istrue(handlerParams.width)
) {
if (widthOption == Php_utl_.Null_int) { // XO.MW: MW does extra validation that widthOption is in array; ("!isset( $wgThumbLimits[$widthOption] )")
if (widthOption == XophpUtility.Null_int) { // XO.MW: MW does extra validation that widthOption is in array; ("!isset( $wgThumbLimits[$widthOption] )")
widthOption = env.User__default__thumbsize;
}
@ -390,13 +389,13 @@ public class XomwLinker {
// For caching health: If width scaled down due to upright
// parameter, round to full __0 pixel to avoid the creation of a
// lot of odd thumbs.
int prefWidth = Php_utl_.isset(frameParams.upright) ?
(int)Php_math_.Round(widthOption * frameParams.upright, -1) :
int prefWidth = XophpUtility.isset(frameParams.upright) ?
(int)XophpMath.round(widthOption * frameParams.upright, -1) :
widthOption;
// Use width which is smaller: real image width or user preference width
// Unless image is scalable vector.
if (handlerParams.height == Php_utl_.Null_int && handlerParams.width <= 0 ||
if (handlerParams.height == XophpUtility.Null_int && handlerParams.width <= 0 ||
prefWidth < handlerParams.width || file.isVectorized()) {
handlerParams.width = prefWidth;
}
@ -425,13 +424,13 @@ public class XomwLinker {
// For "frameless" option: do not present an image bigger than the
// source (for bitmap-style images). This is the same behavior as the
// "thumb" option does it already.
if (Php_utl_.istrue(srcWidth) && !file.mustRender() && handlerParams.width > srcWidth) {
if (XophpUtility.istrue(srcWidth) && !file.mustRender() && handlerParams.width > srcWidth) {
handlerParams.width = srcWidth;
}
}
XomwMediaTransformOutput thumb = null;
if (file != null && Php_utl_.isset(handlerParams.width)) {
if (file != null && XophpUtility.isset(handlerParams.width)) {
// Create a resized image, without the additional thumbnail features
thumb = file.transform(handlerParams);
}
@ -482,9 +481,9 @@ public class XomwLinker {
// @return array
// XO.MW:SYNC:1.29; DATE:2017-02-08
private static void getImageLinkMTOParams(Xomw_params_mto rv, Xomw_params_frame frameParams, byte[] query, XomwParserIface parser) {
if (Php_utl_.isset(frameParams.link_url) && frameParams.link_url != Bry_.Empty) {
if (XophpUtility.isset(frameParams.link_url) && frameParams.link_url != Bry_.Empty) {
rv.custom_url_link = frameParams.link_url;
if (Php_utl_.isset(frameParams.link_target)) {
if (XophpUtility.isset(frameParams.link_target)) {
rv.custom_target_link = frameParams.link_target;
}
if (parser != null) {
@ -495,10 +494,10 @@ public class XomwLinker {
// }
}
}
else if (Php_utl_.isset(frameParams.link_title) && frameParams.link_title != Bry_.Empty) {
else if (XophpUtility.isset(frameParams.link_title) && frameParams.link_title != Bry_.Empty) {
// rv.custom_title_link = Title::newFromLinkTarget(Normalize_speecial_page(frameParams.link_title));
}
else if (!Php_utl_.empty(frameParams.no_link)) {
else if (!XophpUtility.empty(frameParams.no_link)) {
// No link
}
else {
@ -539,22 +538,22 @@ public class XomwLinker {
boolean exists = file != null && file.exists();
int page = handlerParams.page;
if (!Php_utl_.isset(frameParams.align)) {
if (!XophpUtility.isset(frameParams.align)) {
frameParams.align = Align__frame__right;
}
if (!Php_utl_.isset(frameParams.alt)) {
if (!XophpUtility.isset(frameParams.alt)) {
frameParams.alt = Bry_.Empty;
}
if (!Php_utl_.isset(frameParams.title)) {
if (!XophpUtility.isset(frameParams.title)) {
frameParams.title = Bry_.Empty;
}
if (!Php_utl_.isset(frameParams.caption)) {
if (!XophpUtility.isset(frameParams.caption)) {
frameParams.caption = Bry_.Empty;
}
if (Php_utl_.empty(handlerParams.width)) {
if (XophpUtility.empty(handlerParams.width)) {
// Reduce width for upright images when parameter 'upright' is used
handlerParams.width = Php_utl_.isset(frameParams.upright) ? 130 : 180;
handlerParams.width = XophpUtility.isset(frameParams.upright) ? 130 : 180;
}
XomwMediaTransformOutput thumb = null;
boolean noscale = false;
@ -565,7 +564,7 @@ public class XomwLinker {
outerWidth = handlerParams.width + 2;
}
else {
if (Php_utl_.isset(frameParams.manualthumb)) {
if (XophpUtility.isset(frameParams.manualthumb)) {
// Use manually specified thumbnail
// $manual_title = Title::makeTitleSafe(NS_FILE, frameParams['manualthumb']);
// if ($manual_title) {
@ -578,7 +577,7 @@ public class XomwLinker {
// }
// }
}
else if (Php_utl_.isset(frameParams.framed)) {
else if (XophpUtility.isset(frameParams.framed)) {
// Use image dimensions, don't scale
// thumb = $file->getUnscaledThumb(handlerParams);
thumb = new XomwThumbnailImage(file, file.getUrl(), file.getUrl(), file.getWidth(), file.getHeight());
@ -588,7 +587,7 @@ public class XomwLinker {
// Do not present an image bigger than the source, for bitmap-style images
// This is a hack to maintain compatibility with arbitrary pre-1.10 behavior
int srcWidth = file.getWidth(page);
if (Php_utl_.istrue(srcWidth) && !file.mustRender() && handlerParams.width > srcWidth) {
if (XophpUtility.istrue(srcWidth) && !file.mustRender() && handlerParams.width > srcWidth) {
handlerParams.width = srcWidth;
}
thumb = file.transform(handlerParams);
@ -611,9 +610,9 @@ public class XomwLinker {
// $url = wfAppendQuery($url, [ 'page' => $page ]);
// }
if (manualthumb
&& !Php_utl_.isset(frameParams.link_title)
&& !Php_utl_.isset(frameParams.link_url)
&& !Php_utl_.isset(frameParams.no_link)
&& !XophpUtility.isset(frameParams.link_title)
&& !XophpUtility.isset(frameParams.link_url)
&& !XophpUtility.isset(frameParams.no_link)
) {
frameParams.link_url = url;
}
@ -643,7 +642,7 @@ public class XomwLinker {
getImageLinkMTOParams(prms, frameParams, query, null);
thumb.toHtml(bfr, tmp, prms);
if (Php_utl_.isset(frameParams.framed)) {
if (XophpUtility.isset(frameParams.framed)) {
zoom_icon = Bry_.Empty;
}
else {

View File

@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import gplx.core.brys.*; import gplx.core.btries.*; import gplx.core.encoders.*; import gplx.core.primitives.*; import gplx.langs.htmls.entitys.*;
import gplx.xowa.parsers.htmls.*;
import gplx.langs.htmls.*; import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.utls.*;
import gplx.langs.htmls.*; import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.libs.*;
public class XomwSanitizer {
private final Mwh_doc_wkr__atr_bldr atr_bldr = new Mwh_doc_wkr__atr_bldr();
@ -1233,7 +1233,7 @@ public class XomwSanitizer {
// ' ',
// $text);
normalizeWhitespaceBry.Init(text, 0, text.length);
Php_preg_.Replace(normalizeWhitespaceBry, tmp_bfr_2, normalizeWhitespaceTrie, trv, Byte_ascii.Space_bry);
XophpPreg.replace(normalizeWhitespaceBry, tmp_bfr_2, normalizeWhitespaceTrie, trv, Byte_ascii.Space_bry);
return normalizeWhitespaceBry.src;
}
@ -1722,7 +1722,7 @@ public class XomwSanitizer {
// https://tools.ietf.org/html/rfc3454#section-3.1
// Strip them before further processing so blacklists and such work.
// XO.MW.MOVED: see invalid_idn_trie
Php_preg_.Replace(tmp_host.Init(url, regex_find_domain.host_bgn, regex_find_domain.host_end), tmp_bfr, invalid_idn_trie, trv, Bry_.Empty);
XophpPreg.replace(tmp_host.Init(url, regex_find_domain.host_bgn, regex_find_domain.host_end), tmp_bfr, invalid_idn_trie, trv, Bry_.Empty);
// IPv6 host names are bracketed with []. Url-decode these.
// if (substr_compare("//%5B", $host, 0, 5) === 0 &&

View File

@ -382,7 +382,7 @@ public class XomwSetup {
// $wgMinUploadChunkSize = min(
// $wgMinUploadChunkSize,
// UploadBase::getMaxUploadSize( 'file' ),
// UploadBase::getMaxPhpUploadSize(),
// UploadBase::getMaxXophpUploadSize(),
// ( wfShorthandToInteger(
// ini_get( 'post_max_size' ) ?: ini_get( 'hhvm.server.max_post_size' ),
// PHP_INT_MAX

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.title.*;
/**
* Represents a title within MediaWiki.
@ -308,7 +307,7 @@ public class XomwTitle {
byte[] filteredText = text;
XomwTitle t = new XomwTitle();
t.mDbkeyform = Php_str_.strtr(filteredText, Byte_ascii.Space, Byte_ascii.Underline);
t.mDbkeyform = XophpString.strtr(filteredText, Byte_ascii.Space, Byte_ascii.Underline);
t.mDefaultNamespace = defaultNamespace;
t.secureAndSplit();
@ -1434,7 +1433,7 @@ public class XomwTitle {
*/
public byte[] getPrefixedDBkey() {
byte[] s = this.prefix(this.mDbkeyform);
s = Php_str_.strtr(s, Byte_ascii.Space, Byte_ascii.Underline);
s = XophpString.strtr(s, Byte_ascii.Space, Byte_ascii.Underline);
return s;
}
@ -1447,7 +1446,7 @@ public class XomwTitle {
public byte[] getPrefixedText() {
if (this.mPrefixedText == null) {
byte[] s = this.prefix(this.mTextform);
s = Php_str_.strtr(s, Byte_ascii.Underline, Byte_ascii.Space);
s = XophpString.strtr(s, Byte_ascii.Underline, Byte_ascii.Space);
this.mPrefixedText = s;
}
return this.mPrefixedText;
@ -3378,7 +3377,7 @@ public class XomwTitle {
this.mDbkeyform = parts.dbkey;
// this.mUrlform = wfUrlencode(this.mDbkeyform);
this.mTextform = Php_str_.strtr(this.mDbkeyform, Byte_ascii.Underline, Byte_ascii.Space);
this.mTextform = XophpString.strtr(this.mDbkeyform, Byte_ascii.Underline, Byte_ascii.Space);
// We already know that some pages won't be in the database!
if (this.isExternal() || this.mNamespace == XomwDefines.NS_SPECIAL) {
@ -4836,4 +4835,105 @@ public class XomwTitle {
// this.mTextform = strtr(this.mDbkeyform, '_', ' ');
// }
private static final byte[] Bry__wgArticlePath__wiki = Bry_.new_a7("/wiki/");
// REF.MW: DefaultSettings.php
// Allowed title characters -- regex character class
// Don't change this unless you know what you're doing
//
// Problematic punctuation:
// - []{}|# Are needed for link syntax, never enable these
// - <> Causes problems with HTML escaping, don't use
// - % Enabled by default, minor problems with path to query rewrite rules, see below
// - + Enabled by default, but doesn't work with path to query rewrite rules,
// corrupted by apache
// - ? Enabled by default, but doesn't work with path to PATH_INFO rewrites
//
// All three of these punctuation problems can be avoided by using an alias,
// instead of a rewrite rule of either variety.
//
// The problem with % is that when using a path to query rewrite rule, URLs are
// double-unescaped: once by Apache's path conversion code, and again by PHP. So
// %253F, for example, becomes "?". Our code does not double-escape to compensate
// for this, indeed double escaping would break if the double-escaped title was
// passed in the query String rather than the path. This is a minor security issue
// because articles can be created such that they are hard to view or edit.
//
// In some rare cases you may wish to remove + for compatibility with old links.
//
// Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but
// this breaks interlanguage links
// $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+";
//
// REGEX:
// without-backslash escaping --> \s%!"$&'()*,-./0-9:;=?@A-Z\^_`a-z~x80-xFF+
// rearranged
// letters --> 0-9A-Za-z
// unicode-chars --> x80-xFF
// symbols --> \s%!"$&'()*,-./:;=?@\^_`~+"
// deliberately ignores
// control chars: 00-31,127
// []{}|#<>
public static int Find_fwd_while_title(byte[] src, int src_bgn, int src_end, boolean[] valid) {
int cur = src_bgn;
while (true) {
if (cur == src_end) break;
byte b = src[cur];
int b_len = gplx.core.intls.Utf8_.Len_of_char_by_1st_byte(b);
if (b_len == 1) { // ASCII
if (valid[b & 0xFF]) // valid; EX: "a0A B&$"; PATCH.JAVA:need to convert to unsigned byte
cur++;
else // invalid; EX: "<title>"
break;
}
else { // Multi-byte UTF8; NOTE: all sequences are valid
cur += b_len;
}
}
return cur;
}
private static boolean[] title_chars_valid;
public static boolean[] Title_chars_valid() {
if (title_chars_valid == null) {
title_chars_valid = new boolean[128];
// add num and alpha
for (int i = Byte_ascii.Num_0; i <= Byte_ascii.Num_9; i++)
title_chars_valid[i] = true;
for (int i = Byte_ascii.Ltr_A; i <= Byte_ascii.Ltr_Z; i++)
title_chars_valid[i] = true;
for (int i = Byte_ascii.Ltr_a; i <= Byte_ascii.Ltr_z; i++)
title_chars_valid[i] = true;
// add symbols: \s%!"$&'()*,-./:;=?@\^_`~+"
byte[] symbols = new byte[]
{ Byte_ascii.Space
, Byte_ascii.Percent
, Byte_ascii.Bang
, Byte_ascii.Quote
, Byte_ascii.Amp
, Byte_ascii.Apos
, Byte_ascii.Paren_bgn
, Byte_ascii.Paren_end
, Byte_ascii.Star
, Byte_ascii.Comma
, Byte_ascii.Dash
, Byte_ascii.Dot
, Byte_ascii.Slash
, Byte_ascii.Colon
, Byte_ascii.Semic
, Byte_ascii.Eq
, Byte_ascii.Question
, Byte_ascii.At
, Byte_ascii.Backslash
, Byte_ascii.Pow
, Byte_ascii.Underline
, Byte_ascii.Tick
, Byte_ascii.Tilde
, Byte_ascii.Plus
};
int symbols_len = symbols.length;
for (int i = 0; i < symbols_len; i++)
title_chars_valid[symbols[i]] = true;
}
return title_chars_valid;
}
}

View File

@ -13,16 +13,16 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
package gplx.xowa.mediawiki.includes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*;
import org.junit.*; import gplx.core.tests.*;
public class Xomw_ttl_utl__tst {
private final Xomw_ttl_utl__fxt fxt = new Xomw_ttl_utl__fxt();
public class XomwTitleTest {
private final XomwTitleFxt fxt = new XomwTitleFxt();
@Test public void Alphanum() {fxt.Test__find_fwd_while_title("0aB" , 3);}
@Test public void Angle() {fxt.Test__find_fwd_while_title("0a<" , 2);}
}
class Xomw_ttl_utl__fxt {
class XomwTitleFxt {
public void Test__find_fwd_while_title(String src_str, int expd) {
byte[] src_bry = Bry_.new_u8(src_str);
Gftest.Eq__int(expd, Xomw_ttl_utl.Find_fwd_while_title(src_bry, 0, src_bry.length, Xomw_ttl_utl.Title_chars_valid()));
Gftest.Eq__int(expd, XomwTitle.Find_fwd_while_title(src_bry, 0, src_bry.length, XomwTitle.Title_chars_valid()));
}
}

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.filerepo; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
import gplx.xowa.mediawiki.includes.utls.*;
/* TODO.XO:
* getZoneUrl
*/

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*;
import gplx.xowa.mediawiki.includes.media.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
public class XomwFile {
/* TODO.XO:
@ -279,7 +278,7 @@ public class XomwFile {
* @return String
*/
public byte[] getName() {
if (!Php_utl_.isset(this.name)) {
if (!XophpUtility.isset(this.name)) {
// this.assertRepoDefined();
this.name = this.repo.getNameFromTitle(this.title);
}
@ -293,10 +292,10 @@ public class XomwFile {
* @return String
*/
private byte[] getExtension() {
if (!Php_utl_.isset(this.extension)) {
int n = Php_str_.Strpos(this.getName(), Byte_ascii.Dot);
if (!XophpUtility.isset(this.extension)) {
int n = XophpString.strpos(this.getName(), Byte_ascii.Dot);
this.extension = normalizeExtension(
n != Bry_find_.Not_found ? Php_str_.Substr(this.getName(), n + 1) : Bry_.Empty);
n != Bry_find_.Not_found ? XophpString.substr(this.getName(), n + 1) : Bry_.Empty);
}
return this.extension;
@ -330,7 +329,7 @@ public class XomwFile {
* @return String
*/
public byte[] getUrl() {
if (!Php_utl_.isset(this.url)) {
if (!XophpUtility.isset(this.url)) {
// this.assertRepoDefined();
byte[] ext = this.getExtension();
this.url = Bry_.Add(this.repo.getZoneUrl(XomwFileRepo.Zone__public, ext), Byte_ascii.Slash_bry, this.getUrlRel());
@ -1497,7 +1496,7 @@ public class XomwFile {
* @return String
*/
private byte[] getHashPath() {
if (!Php_utl_.isset(this.hashPath)) {
if (!XophpUtility.isset(this.hashPath)) {
// this.assertRepoDefined();
this.hashPath = this.repo.getHashPath(this.getName());
}
@ -1559,7 +1558,7 @@ public class XomwFile {
* @return String
*/
private byte[] getUrlRel() {
return Bry_.Add(this.getHashPath(), Php_encode_.rawurlencode(this.getName()));
return Bry_.Add(this.getHashPath(), XophpEncode.rawurlencode(this.getName()));
}
// /**

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.core.btries.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class XomwHtml {
private final Bry_bfr tmp = Bry_bfr_.New();
private final Btrie_rv trv = new Btrie_rv();
@ -128,7 +127,7 @@ public class XomwHtml {
}
else {
// PORTED.HEADER:atr_val_encodings
val = Php_str_.Strtr(val, atr_val_encodings, tmp, trv);
val = XophpString.strtr(val, atr_val_encodings, tmp, trv);
bfr.Add_byte_space().Add(key).Add(Bry__atr__val__quote).Add(val).Add_byte_quote();
}
}

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.core.btries.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.libs.replacers.*;
/**
* A collection of static methods to play with strings.

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.utls.*;
/* XO.TODO:
* validateThumbParams
*/
@ -29,7 +28,7 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
* @return boolean
*/
@Override public boolean canRender(XomwFile file) {
return (Php_utl_.istrue(file.getWidth()) && Php_utl_.istrue(file.getHeight()));
return (XophpUtility.istrue(file.getWidth()) && XophpUtility.istrue(file.getHeight()));
}
@Override public Xomw_param_map getParamMap() {
@ -53,10 +52,10 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
@Override public byte[] makeParamString(Xomw_params_handler handlerParams) {
int width = 0;
if (Php_utl_.isset(handlerParams.physicalWidth)) {
if (XophpUtility.isset(handlerParams.physicalWidth)) {
width = handlerParams.physicalWidth;
}
else if (Php_utl_.isset(handlerParams.width)) {
else if (XophpUtility.isset(handlerParams.width)) {
width = handlerParams.width;
}
else {
@ -77,7 +76,7 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
// pos = Bry_find_.Find_fwd_while_num(src, 1, len); // skip numeric
// if (Bry_.Match(src, pos, len, Xomw_lnki_wkr.Bry__px)) { // matches "px"
// Xomw_params_handler rv = new Xomw_params_handler();
// rv.width = Bry_.To_int_or(src, 0, pos, Php_utl_.Null_int);
// rv.width = Bry_.To_int_or(src, 0, pos, XophpUtility.Null_int);
// return rv;
// }
// }
@ -96,11 +95,11 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
@Override public boolean normaliseParams(XomwFile image, Xomw_params_handler handlerParams) {
byte[] mimeType = image.getMimeType();
if (!Php_utl_.isset(handlerParams.width)) {
if (!XophpUtility.isset(handlerParams.width)) {
return false;
}
if (!Php_utl_.isset(handlerParams.page)) {
if (!XophpUtility.isset(handlerParams.page)) {
handlerParams.page = 1;
}
else {
@ -117,7 +116,7 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
int srcWidth = image.getWidth(handlerParams.page);
int srcHeight = image.getHeight(handlerParams.page);
if (Php_utl_.isset(handlerParams.height) && handlerParams.height != -1) {
if (XophpUtility.isset(handlerParams.height) && handlerParams.height != -1) {
// Height & width were both set
if (handlerParams.width * srcHeight > handlerParams.height * srcWidth) {
// Height is the relative smaller dimension, so scale width accordingly
@ -131,11 +130,11 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
handlerParams.physicalWidth = handlerParams.width;
} else {
// Height was crap, unset it so that it will be calculated later
handlerParams.height = Php_utl_.Null_int;
handlerParams.height = XophpUtility.Null_int;
}
}
if (!Php_utl_.isset(handlerParams.physicalWidth)) {
if (!XophpUtility.isset(handlerParams.physicalWidth)) {
// Passed all validations, so set the physicalWidth
handlerParams.physicalWidth = handlerParams.width;
}
@ -147,7 +146,7 @@ public abstract class XomwImageHandler extends XomwMediaHandler { private final
handlerParams.physicalWidth);
// Set the height if it was not validated in the if block higher up
if (!Php_utl_.isset(handlerParams.height) || handlerParams.height == -1) {
if (!XophpUtility.isset(handlerParams.height) || handlerParams.height == -1) {
handlerParams.height = handlerParams.physicalHeight;
}

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import org.junit.*; import gplx.core.tests.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.*; import gplx.xowa.mediawiki.includes.filerepo.file.*;
public class XomwImageHandlerTest {
@ -36,7 +35,7 @@ class XomwImageHandler_fxt {
public XomwImageHandler_fxt() {
handler = new XomwTransformationalImageHandler(Bry_.new_a7("test_handler"));
}
public Xomw_params_handler Make__handlerParams(int w) {return Make__handlerParams(w, Php_utl_.Null_int, Php_utl_.Null_int, Php_utl_.Null_int);}
public Xomw_params_handler Make__handlerParams(int w) {return Make__handlerParams(w, XophpUtility.Null_int, XophpUtility.Null_int, XophpUtility.Null_int);}
public Xomw_params_handler Make__handlerParams(int w, int h, int phys_w, int phys_h) {
Xomw_params_handler rv = new Xomw_params_handler();
rv.width = w;

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.langs.htmls.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
public abstract class XomwMediaTransformOutput {

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.media; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.langs.htmls.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.parsers.lnkis.*;
import gplx.xowa.mediawiki.includes.filerepo.file.*;
// Media transform output for images
@ -136,71 +135,71 @@ public class XomwThumbnailImage extends XomwMediaTransformOutput { private final
attribs.Add_many(Gfh_atr_.Bry__alt, alt);
attribs.Add_many(Gfh_atr_.Bry__src, url);
boolean link_attribs_is_null = false;
if (!Php_utl_.empty(options.custom_url_link)) {
if (!XophpUtility.empty(options.custom_url_link)) {
link_attribs.Clear();
link_attribs.Add_many(Gfh_atr_.Bry__href, options.custom_url_link);
if (!Php_utl_.empty(options.title)) {
if (!XophpUtility.empty(options.title)) {
link_attribs.Add_many(Gfh_atr_.Bry__title, options.title);
}
if (Php_utl_.empty(options.custom_target_link)) {
if (XophpUtility.empty(options.custom_target_link)) {
link_attribs.Add_many(Gfh_atr_.Bry__target, options.custom_target_link);
}
else if (Php_utl_.empty(options.parser_extlink_target)) {
else if (XophpUtility.empty(options.parser_extlink_target)) {
link_attribs.Add_many(Gfh_atr_.Bry__target, options.parser_extlink_target);
}
if (Php_utl_.empty(options.parser_extlink_rel)) {
if (XophpUtility.empty(options.parser_extlink_rel)) {
link_attribs.Add_many(Gfh_atr_.Bry__rel, options.parser_extlink_rel);
}
}
else if (!Php_utl_.empty(options.custom_title_link)) {
else if (!XophpUtility.empty(options.custom_title_link)) {
// byte[] title = options.custom_title_link;
// link_attribs.Clear();
// link_attribs.Add_many(Gfh_atr_.Bry__href, title.Get_link_url());
// byte[] options_title = options.title;
// link_attribs.Add_many(Gfh_atr_.Bry__title, Php_utl_.empty(options_title) ? title.Get_full_text() : options_title);
// link_attribs.Add_many(Gfh_atr_.Bry__title, XophpUtility.empty(options_title) ? title.Get_full_text() : options_title);
}
else if (!Php_utl_.empty(options.desc_link)) {
else if (!XophpUtility.empty(options.desc_link)) {
// link_attribs = this.getDescLinkAttribs(
// empty(options['title']) ? null : options['title'],
// $query
// );
link_attribs.Clear();
this.getDescLinkAttribs(link_attribs,
Php_utl_.empty(options.title) ? null : options.title,
XophpUtility.empty(options.title) ? null : options.title,
null);
}
else if (!Php_utl_.empty(options.file_link)) {
else if (!XophpUtility.empty(options.file_link)) {
// link_attribs.Clear();
// link_attribs.Add_many(Gfh_atr_.Bry__href, file.Get_url());
}
else {
link_attribs_is_null = true;
if (!Php_utl_.empty(options.title)) {
if (!XophpUtility.empty(options.title)) {
attribs.Add_many(Gfh_atr_.Bry__title, options.title);
}
}
if (Php_utl_.empty(options.no_dimensions)) {
if (XophpUtility.empty(options.no_dimensions)) {
attribs.Add_many(Gfh_atr_.Bry__width, Int_.To_bry(width));
attribs.Add_many(Gfh_atr_.Bry__height, Int_.To_bry(height));
}
if (!Php_utl_.empty(options.valign)) {
if (!XophpUtility.empty(options.valign)) {
attribs.Add_many(Gfh_atr_.Bry__style, Bry_.Add(Bry__vertical_align, options.valign));
}
if (!Php_utl_.empty(options.img_cls)) {
if (!XophpUtility.empty(options.img_cls)) {
attribs.Add_many(Gfh_atr_.Bry__class, options.img_cls);
}
if (Php_utl_.isset(options.override_height)) {
if (XophpUtility.isset(options.override_height)) {
attribs.Add_many(Gfh_atr_.Bry__class, options.override_height);
}
if (Php_utl_.isset(options.override_width)) {
if (XophpUtility.isset(options.override_width)) {
attribs.Add_many(Gfh_atr_.Bry__width, options.override_height);
}
// Additional densities for responsive images, if specified.
// If any of these urls is the same as src url, it'll be excluded.
// $responsiveUrls = array_diff(this.responsiveUrls, [ this.url ]);
// if (!Php_utl_.empty($responsiveUrls)) {
// if (!XophpUtility.empty($responsiveUrls)) {
// $attribs['srcset'] = Html::srcSet($responsiveUrls);
// }

View File

@ -16,7 +16,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.core.btries.*;
import gplx.langs.htmls.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_block_level_pass {
private final Bry_bfr tmp = Bry_bfr_.New();
private final Btrie_rv trv = new Btrie_rv();
@ -106,8 +105,8 @@ public class Xomw_block_level_pass {
// If not in a <pre> element, scan for and figure out what prefixes are there.
if (!in_pre) {
// Multiple prefixes may abut each other for nested lists.
prefix_len = Php_str_.Strspn_fwd__ary(src, block_chars_ary, line_bgn, line_end, line_end); // strspn($oLine, '*#:;');
prefix = Php_str_.Substr(src, line_bgn, prefix_len);
prefix_len = XophpString.strspn_fwd__ary(src, block_chars_ary, line_bgn, line_end, line_end); // strspn($oLine, '*#:;');
prefix = XophpString.substr(src, line_bgn, prefix_len);
// eh?
// ; and : are both from definition-lists, so they're equivalent
@ -130,7 +129,7 @@ public class Xomw_block_level_pass {
int common_prefix_len = -1;
if (prefix_len > 0 && Bry_.Eq(last_prefix, prefix2)) {
// Same as the last item, so no need to deal with nesting or opening stuff
bfr.Add(Next_item(Php_str_.Substr_byte(prefix, -1)));
bfr.Add(Next_item(XophpString.substr_byte(prefix, -1)));
para_stack = Para_stack__none;
if (prefix_len > 0 && prefix[prefix_len - 1] == Byte_ascii.Semic) {
@ -170,7 +169,7 @@ public class Xomw_block_level_pass {
bfr.Add_byte_nl();
}
while (prefix_len > common_prefix_len) {
byte c = Php_str_.Substr_byte(prefix, common_prefix_len, 1);
byte c = XophpString.substr_byte(prefix, common_prefix_len, 1);
bfr.Add(Open_list(c));
if (c == Byte_ascii.Semic) {
@ -195,8 +194,8 @@ public class Xomw_block_level_pass {
// No prefix (not in list)--go to paragraph mode
// XXX: use a stack for nestable elements like span, table and div
int t_len = t.length;
boolean open_match = Php_preg_.Match(open_match_trie, trv, t, 0, t_len) != null;
boolean close_match = Php_preg_.Match(close_match_trie, trv, t, 0, t_len) != null;
boolean open_match = XophpPreg.match(open_match_trie, trv, t, 0, t_len) != null;
boolean close_match = XophpPreg.match(close_match_trie, trv, t, 0, t_len) != null;
if (open_match || close_match) {
para_stack = Para_stack__none;
@ -208,7 +207,7 @@ public class Xomw_block_level_pass {
int bq_offset = 0;
// PORTED:preg_match('/<(\\/?)blockquote[\s>]/i', t, $bqMatch, PREG_OFFSET_CAPTURE, $bq_offset)
while (true) {
Object o = Php_preg_.Match(blockquote_trie, trv, t, bq_offset, t_len);
Object o = XophpPreg.match(blockquote_trie, trv, t, bq_offset, t_len);
if (o == null) { // no more blockquotes found; exit
break;
}
@ -221,7 +220,7 @@ public class Xomw_block_level_pass {
in_block_elem = !close_match;
}
else if (!in_block_elem && !in_pre) {
if ( Php_str_.Substr_byte(t, 0) == Byte_ascii.Space
if ( XophpString.substr_byte(t, 0) == Byte_ascii.Space
&& (last_section == Last_section__pre || Bry_.Trim(t) != Bry_.Empty)
&& !in_blockquote
) {
@ -391,17 +390,17 @@ public class Xomw_block_level_pass {
// to prevent illegal overlapping.
private int Find_colon_no_links(byte[] str, byte[] before, byte[] after) {
int len = str.length;
int colon_pos = Php_str_.Strpos(str, Byte_ascii.Colon, 0, len);
int colon_pos = XophpString.strpos(str, Byte_ascii.Colon, 0, len);
if (colon_pos == Bry_find_.Not_found) {
// Nothing to find!
return Bry_find_.Not_found;
}
int lt_pos = Php_str_.Strpos(str, Byte_ascii.Angle_bgn, 0, len);
int lt_pos = XophpString.strpos(str, Byte_ascii.Angle_bgn, 0, len);
if (lt_pos == Bry_find_.Not_found || lt_pos > colon_pos) {
// Easy; no tag nesting to worry about
find_colon_no_links__before = Php_str_.Substr(str, 0, colon_pos);
find_colon_no_links__after = Php_str_.Substr(str, colon_pos + 1);
find_colon_no_links__before = XophpString.substr(str, 0, colon_pos);
find_colon_no_links__after = XophpString.substr(str, colon_pos + 1);
return colon_pos;
}
@ -421,25 +420,25 @@ public class Xomw_block_level_pass {
case Byte_ascii.Colon:
if (level == 0) {
// We found it!
find_colon_no_links__before = Php_str_.Substr(str, 0, i);
find_colon_no_links__after = Php_str_.Substr(str, i + 1);
find_colon_no_links__before = XophpString.substr(str, 0, i);
find_colon_no_links__after = XophpString.substr(str, i + 1);
return i;
}
// Embedded in a tag; don't break it.
break;
default:
// Skip ahead looking for something interesting
colon_pos = Php_str_.Strpos(str, Byte_ascii.Colon, i, len);
colon_pos = XophpString.strpos(str, Byte_ascii.Colon, i, len);
if (colon_pos == Bry_find_.Not_found) {
// Nothing else interesting
return Bry_find_.Not_found;
}
lt_pos = Php_str_.Strpos(str, Byte_ascii.Angle_bgn, i, len);
lt_pos = XophpString.strpos(str, Byte_ascii.Angle_bgn, i, len);
if (level == 0) {
if (lt_pos == Bry_find_.Not_found || colon_pos < lt_pos) {
// We found it!
find_colon_no_links__before = Php_str_.Substr(str, 0, colon_pos);
find_colon_no_links__after = Php_str_.Substr(str, colon_pos + 1);
find_colon_no_links__before = XophpString.substr(str, 0, colon_pos);
find_colon_no_links__after = XophpString.substr(str, colon_pos + 1);
return i;
}
}

View File

@ -18,7 +18,7 @@ import gplx.core.btries.*; import gplx.core.net.*;
import gplx.xowa.mediawiki.includes.parsers.prepros.*; import gplx.xowa.mediawiki.includes.parsers.headings.*;
import gplx.xowa.mediawiki.includes.parsers.quotes.*; import gplx.xowa.mediawiki.includes.parsers.tables.*; import gplx.xowa.mediawiki.includes.parsers.hrs.*; import gplx.xowa.mediawiki.includes.parsers.nbsps.*;
import gplx.xowa.mediawiki.includes.parsers.lnkes.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*; import gplx.xowa.mediawiki.includes.parsers.magiclinks.*; import gplx.xowa.mediawiki.includes.parsers.doubleunders.*;
import gplx.xowa.mediawiki.includes.utls.*; import gplx.xowa.mediawiki.includes.linkers.*;
import gplx.xowa.mediawiki.includes.linkers.*;
import gplx.xowa.mediawiki.includes.htmls.*;
public class Xomw_parser implements XomwParserIface {
private final Xomw_parser_ctx pctx = new Xomw_parser_ctx();

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.hrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_hr_wkr {// THREAD.UNSAFE: caching for repeated calls
private Bry_bfr bfr;
public void replaceHrs(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { // REF.MW: text = preg_replace('/(^|\n)-----*/', '\\1<hr />', text);

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.lnkes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.core.btries.*; import gplx.core.primitives.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.mediawiki.includes.htmls.*;
/* TODO.XO
* P3: $langObj->formatNum( ++$this->mAutonumber );
@ -165,7 +164,7 @@ public class Xomw_lnke_wkr {// THREAD.UNSAFE: caching for repeated calls
// The characters '<' and '>' (which were escaped by
// removeHTMLtags()) should not be included in
// URLs, per RFC 2396.
if (Php_preg_.Match(angle_entities_trie, trv, src, url_bgn, url_end) != null) {
if (XophpPreg.match(angle_entities_trie, trv, src, url_bgn, url_end) != null) {
int angle_bgn = trv.Match_bgn;
text_bgn = angle_bgn;
url_end = angle_bgn;

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.core.btries.*; import gplx.core.primitives.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.xwikis.*;
import gplx.xowa.mediawiki.includes.parsers.*; import gplx.xowa.mediawiki.includes.parsers.quotes.*;
import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.linkers.*;
@ -70,7 +69,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
this.env = env;
this.wiki = wiki;
if (title_chars_for_lnki == null) {
title_chars_for_lnki = (boolean[])Array_.Clone(Xomw_ttl_utl.Title_chars_valid());
title_chars_for_lnki = (boolean[])Array_.Clone(XomwTitle.Title_chars_valid());
// the % is needed to support urlencoded titles as well
title_chars_for_lnki[Byte_ascii.Hash] = true;
title_chars_for_lnki[Byte_ascii.Percent] = true;
@ -156,7 +155,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// PORTED.BGN: if (preg_match($e1, $line, $m)) && else if (preg_match($e1_img, $line, $m))
// NOTE: both e1 and e1_img are effectively the same; e1_img allows nested "[["; EX: "[[A|b[[c]]d]]" will stop at "[[A|b"
int ttl_bgn = cur;
int ttl_end = Xomw_ttl_utl.Find_fwd_while_title(src, cur, src_end, title_chars_for_lnki);
int ttl_end = XomwTitle.Find_fwd_while_title(src, cur, src_end, title_chars_for_lnki);
cur = ttl_end;
int capt_bgn = -1, capt_end = -1;
int nxt_lnki = -1;
@ -590,7 +589,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
break;
default:
// Most other things appear to be empty or numeric...
validated = (val == null || Php_utl_.isnumeric(Bry_.Trim(val)));
validated = (val == null || XophpUtility.isnumeric(Bry_.Trim(val)));
break;
}
}
@ -725,7 +724,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls
// Parsed a width param of imagelink like 300px or 200x300px
// XO.MW.NOTE: for MW, "" -> null, null while "AxB" -> 0x0
public void parseWidthParam(int[] img_size, byte[] src) {
img_size[0] = img_size[1] = Php_utl_.Null_int;
img_size[0] = img_size[1] = XophpUtility.Null_int;
if (src == Bry_.Empty) {
return;
}

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_params_frame {
public byte[] align = null;
public byte[] valign = null;
@ -45,12 +44,12 @@ public class Xomw_params_frame {
}
public Xomw_params_frame Clear() {
desc_link = false;
upright = Php_utl_.Null_double;
upright = XophpUtility.Null_double;
align = valign = caption = frame = framed = frameless
= thumbnail = manualthumb = alt = title = cls = img_cls
= link_title = link_url = link_target = no_link
= custom_url_link = custom_target_link = desc_query
= Php_utl_.Null_bry;
= XophpUtility.Null_bry;
return this;
}
public void Copy_to(Xomw_params_frame src) {

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_params_handler {
public int width;
public int height;
@ -23,7 +22,7 @@ public class Xomw_params_handler {
public int physicalHeight;
public Xomw_params_handler Clear() {
width = height = page
= physicalWidth = physicalHeight = Php_utl_.Null_int;
= physicalWidth = physicalHeight = XophpUtility.Null_int;
return this;
}
public void Copy_to(Xomw_params_handler src) {

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.lnkis; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_params_scalar {
public int physicalWidth;
public int physicalHeight;
@ -29,6 +28,6 @@ public class Xomw_params_scalar {
public byte[] dstUrl;
public byte[] interlace;
public Xomw_params_scalar() {
physicalWidth = physicalHeight = clientWidth = clientHeight = srcWidth = srcHeight = Php_utl_.Null_int;
physicalWidth = physicalHeight = clientWidth = clientHeight = srcWidth = srcHeight = XophpUtility.Null_int;
}
}

View File

@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.magiclinks; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.core.primitives.*; import gplx.core.btries.*; import gplx.core.net.*;
import gplx.xowa.mediawiki.includes.utls.*; import gplx.xowa.mediawiki.includes.htmls.*;
import gplx.xowa.mediawiki.includes.htmls.*;
import gplx.langs.regxs.*;
// TODO.XO: this->getConverterLanguage()->markNoConversion($url, true),
public class Xomw_magiclinks_wkr {
@ -224,12 +224,12 @@ public class Xomw_magiclinks_wkr {
// XO.MW: if (strpos($url, '(') === false) {$sep .= ')';}
url_separators[Byte_ascii.Paren_end] = Bry_find_.Find_fwd(url, Byte_ascii.Paren_bgn, 0, url_len) == Bry_find_.Not_found;
int num_sep_chars = Php_str_.Strspn_bwd__ary(url, url_separators, url_len, -1);
int num_sep_chars = XophpString.strspn_bwd__ary(url, url_separators, url_len, -1);
// Don't break a trailing HTML entity by moving the ; into $trail
// This is in hot code, so use substr_compare to avoid having to
// create a new String Object for the comparison
// XO.MW.NOTE: ignore semic if part of entity; EX: "http://a.org&apos;!."
if (num_sep_chars > 0 && Php_str_.Substr_byte(url, -num_sep_chars) == Byte_ascii.Semic) {
if (num_sep_chars > 0 && XophpString.substr_byte(url, -num_sep_chars) == Byte_ascii.Semic) {
// more optimization: instead of running preg_match with a $
// anchor, which can be slow, do the match on the reversed
// String starting at the desired offset.
@ -241,8 +241,8 @@ public class Xomw_magiclinks_wkr {
}
if (num_sep_chars > 0) {
trail = Bry_.Add(Php_str_.Substr(url, -num_sep_chars), trail);
url = Php_str_.Substr(url, 0, -num_sep_chars);
trail = Bry_.Add(XophpString.substr(url, -num_sep_chars), trail);
url = XophpString.substr(url, 0, -num_sep_chars);
}
// Verify that we still have a real URL after trail removal, and

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.prepros; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.core.btries.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
private final Bry_bfr tmp_bfr = Bry_bfr_.New();
private final List_adp comments_list = List_adp_.New();
@ -287,11 +286,11 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
}
else {
// Search backwards for leading whitespace
int ws_bgn = i > 0 ? i - Php_str_.Strspn_bwd__space_or_tab(src, i, -1) : 0;
int ws_bgn = i > 0 ? i - XophpString.strspn_bwd__space_or_tab(src, i, -1) : 0;
// Search forwards for trailing whitespace
// $wsEnd will be the position of the last space (or the '>' if there's none)
int ws_end = end_pos + 2 + Php_str_.Strspn_fwd__space_or_tab(src, end_pos + 3, -1, src_len);
int ws_end = end_pos + 2 + XophpString.strspn_fwd__space_or_tab(src, end_pos + 3, -1, src_len);
// Keep looking forward as long as we're finding more
// comments.
@ -302,7 +301,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
if (cur_char_pos == Bry_find_.Not_found) {
break;
}
cur_char_pos = cur_char_pos + 2 + Php_str_.Strspn_fwd__space_or_tab(src, cur_char_pos + 3, -1, src_len);
cur_char_pos = cur_char_pos + 2 + XophpString.strspn_fwd__space_or_tab(src, cur_char_pos + 3, -1, src_len);
comments_list.Add(new int[] {ws_end + 1, cur_char_pos});
ws_end = cur_char_pos;
}
@ -321,7 +320,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
int ws_len = i - ws_bgn;
int accum_len = accum.Len();
if ( ws_len > 0
&& Php_str_.Strspn_fwd__space_or_tab(accum.Bfr(), accum_len - ws_len, -1, accum_len) == ws_len) {
&& XophpString.strspn_fwd__space_or_tab(accum.Bfr(), accum_len - ws_len, -1, accum_len) == ws_len) {
accum.Del_by(ws_len);
}
@ -487,7 +486,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
i++;
}
int count = Php_str_.Strspn_fwd__byte(src, Byte_ascii.Eq, i, 6, src_len);
int count = XophpString.strspn_fwd__byte(src, Byte_ascii.Eq, i, 6, src_len);
if (count == 1 && find_equals) { // EX: "{{a|\n=b=\n"
// DWIM: This looks kind of like a name/value separator.
// Let's let the equals handler have it and break the
@ -516,7 +515,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
// Search back through the input to see if it has a proper close.
// Do this using the reversed String since the other solutions
// (end anchor, etc.) are inefficient.
int ws_len = Php_str_.Strspn_bwd__space_or_tab(src, src_len - i, -1);
int ws_len = XophpString.strspn_bwd__space_or_tab(src, src_len - i, -1);
int search_bgn = i - ws_len;
if (part.comment_end != -1 && search_bgn -1 == part.comment_end) {
@ -524,10 +523,10 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
// Search for equals signs before the comment
search_bgn = part.visual_end;
search_bgn = Bry_find_.Find_bwd__while_space_or_tab(src, search_bgn, 0);
search_bgn -= Php_str_.Strspn_bwd__space_or_tab(src, search_bgn, -1);
search_bgn -= XophpString.strspn_bwd__space_or_tab(src, search_bgn, -1);
}
int count = piece.count;
int eq_len = Php_str_.Strspn_bwd__byte(src, Byte_ascii.Eq, search_bgn, -1);
int eq_len = XophpString.strspn_bwd__byte(src, Byte_ascii.Eq, search_bgn, -1);
byte[] element = Bry_.Empty;
if (eq_len > 0) {
@ -580,7 +579,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
}
else if (found == Found__open) {
// count opening brace characters
int count = Php_str_.Strspn_fwd__byte(src, cur_char[0], i, -1, src_len); // NOTE: don't know how MediaWiki will handle "-{"
int count = XophpString.strspn_fwd__byte(src, cur_char[0], i, -1, src_len); // NOTE: don't know how MediaWiki will handle "-{"
// we need to add to stack only if opening brace count is enough for one of the rules
if (count >= rule.min) {
@ -605,7 +604,7 @@ public class Xomw_prepro_wkr { // THREAD.UNSAFE: caching for repeated calls
Xomw_prepro_piece piece = stack.top;
// lets check if there are enough characters for closing brace
int max_count = piece.count;
int count = Php_str_.Strspn_fwd__byte(src, cur_char[0], i, max_count, src_len);
int count = XophpString.strspn_fwd__byte(src, cur_char[0], i, max_count, src_len);
// check for maximum matching characters (if there are 5 closing characters, we will probably need only 3 - depending on the rules)
rule = Get_rule(piece.open);

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.quotes; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.parsers.htmls.*;
import gplx.core.primitives.*;
public class Xomw_quote_wkr {// THREAD.UNSAFE: caching for repeated calls
@ -54,7 +53,7 @@ public class Xomw_quote_wkr {// THREAD.UNSAFE: caching for repeated calls
return found ? tmp.To_bry_and_clear() : src;
}
private boolean Do_quotes(Bry_bfr bfr, boolean all_quotes_mode, byte[] src, int line_bgn, int line_end) {
byte[][] arr = Php_preg_.Split(apos_pos_ary, src, line_bgn, line_end, Wtxt__apos, Bool_.Y); // PORTED.REGX: arr = preg_split("/(''+)/", text, -1, PREG_SPLIT_DELIM_CAPTURE);
byte[][] arr = XophpPreg.split(apos_pos_ary, src, line_bgn, line_end, Wtxt__apos, Bool_.Y); // PORTED.REGX: arr = preg_split("/(''+)/", text, -1, PREG_SPLIT_DELIM_CAPTURE);
if (arr == null) {
if (all_quotes_mode) {
bfr.Add_mid(src, line_bgn, line_end).Add_byte_nl();
@ -111,8 +110,8 @@ public class Xomw_quote_wkr {// THREAD.UNSAFE: caching for repeated calls
for (int i = 1; i < arr_len; i += 2) {
if (arr[i].length == 3) {
byte[] prv = arr[i - 1];
byte prv__last_char = Php_str_.Substr_byte(prv, -1);
byte prv__last_minus_1_char = Php_str_.Substr_byte(prv, -2, 1);
byte prv__last_char = XophpString.substr_byte(prv, -1);
byte prv__last_minus_1_char = XophpString.substr_byte(prv, -2, 1);
if (prv__last_char == Byte_ascii.Space) { // NOTE: prv ends in space; EX: "''prv '''"
if (prv_ends_w_space == -1) {
prv_ends_w_space = i;

View File

@ -14,7 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.parsers.tables; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*;
import gplx.xowa.mediawiki.includes.utls.*;
import gplx.xowa.parsers.htmls.*;
import gplx.xowa.mediawiki.includes.libs.*; import gplx.xowa.parsers.uniqs.*;
public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.UNSAFE: caching for repeated calls
@ -49,13 +48,13 @@ public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.U
// Closing open td, tr && table
while (td_history.Len() > 0) {
if (Php_ary_.Pop_bool_or_n(td_history)) {
if (XophpArray.popBoolOrN(td_history)) {
bfr.Add_str_a7("</td>\n");
}
if (Php_ary_.Pop_bool_or_n(tr_history)) {
if (XophpArray.popBoolOrN(tr_history)) {
bfr.Add_str_a7("</tr>\n");
}
if (!Php_ary_.Pop_bool_or_n(has_opened_tr)) {
if (!XophpArray.popBoolOrN(has_opened_tr)) {
bfr.Add_str_a7("<tr><td></td></tr>\n");
}
bfr.Add_str_a7("</table>\n");
@ -124,20 +123,20 @@ public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.U
else if (Bry_.Eq(first_2, Wtxt__tb__end)) {
// We are ending a table
line = tmp.Add_str_a7("</table>").Add_mid(line, 2, line.length).To_bry_and_clear();
byte[] last_tag = Php_ary_.Pop_bry_or_null(last_tag_history);
byte[] last_tag = XophpArray.popBryOrNull(last_tag_history);
if (!Php_ary_.Pop_bool_or_n(has_opened_tr)) {
if (!XophpArray.popBoolOrN(has_opened_tr)) {
line = tmp.Add_str_a7("<tr><td></td></tr>").Add(line).To_bry_and_clear();
}
if (Php_ary_.Pop_bool_or_n(tr_history)) {
if (XophpArray.popBoolOrN(tr_history)) {
line = tmp.Add_str_a7("</tr>").Add(line).To_bry_and_clear();
}
if (Php_ary_.Pop_bool_or_n(td_history)) {
if (XophpArray.popBoolOrN(td_history)) {
line = tmp.Add_str_a7("</").Add(last_tag).Add_byte(Byte_ascii.Angle_end).Add(line).To_bry_and_clear();
}
Php_ary_.Pop_bry_or_null(tr_attributes);
XophpArray.popBryOrNull(tr_attributes);
// PORTED:$outLine = $line . str_repeat( '</dd></dl>', $indent_level );
tmp.Add(line);
for (int j = 0; j < indent_level; j++)
@ -153,19 +152,19 @@ public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.U
sanitizer.fixTagAttributes(tmp, Name__tr, atrs);
atrs = tmp.To_bry_and_clear();
Php_ary_.Pop_bry_or_null(tr_attributes);
XophpArray.popBryOrNull(tr_attributes);
tr_attributes.Add(atrs);
line = Bry_.Empty;
byte[] last_tag = Php_ary_.Pop_bry_or_null(last_tag_history);
Php_ary_.Pop_bool_or_n(has_opened_tr);
byte[] last_tag = XophpArray.popBryOrNull(last_tag_history);
XophpArray.popBoolOrN(has_opened_tr);
has_opened_tr.Add(true);
if (Php_ary_.Pop_bool_or_n(tr_history)) {
if (XophpArray.popBoolOrN(tr_history)) {
line = Html__tr__end;
}
if (Php_ary_.Pop_bool_or_n(td_history)) {
if (XophpArray.popBoolOrN(td_history)) {
line = tmp.Add_str_a7("</").Add(last_tag).Add_byte(Byte_ascii.Gt).Add(line).To_bry_and_clear();
}
@ -206,19 +205,19 @@ public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.U
byte[] cell = cells[j];
previous = Bry_.Empty;
if (first_char != Byte_ascii.Plus) {
byte[] tr_after = Php_ary_.Pop_bry_or_null(tr_attributes);
if (!Php_ary_.Pop_bool_or_n(tr_history)) {
byte[] tr_after = XophpArray.popBryOrNull(tr_attributes);
if (!XophpArray.popBoolOrN(tr_history)) {
previous = tmp.Add_str_a7("<tr").Add(tr_after).Add_str_a7(">\n").To_bry_and_clear();
}
tr_history.Add(true);
tr_attributes.Add(Bry_.Empty);
Php_ary_.Pop_bool_or_n(has_opened_tr);
XophpArray.popBoolOrN(has_opened_tr);
has_opened_tr.Add(true);
}
byte[] last_tag = Php_ary_.Pop_bry_or_null(last_tag_history);
byte[] last_tag = XophpArray.popBryOrNull(last_tag_history);
if (Php_ary_.Pop_bool_or_n(td_history)) {
if (XophpArray.popBoolOrN(td_history)) {
previous = tmp.Add_str_a7("</").Add(last_tag).Add_str_a7(">\n").Add(previous).To_bry_and_clear();
}

View File

@ -15,7 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.title; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import gplx.xowa.mediawiki.languages.*;
import gplx.xowa.mediawiki.includes.utls.*;
public class XomwMediaWikiTitleCodec implements XomwTitleFormatter {
/**
* @var Language
@ -235,7 +234,7 @@ public class XomwMediaWikiTitleCodec implements XomwTitleFormatter {
* 'user_case_dbkey', and 'dbkey'.
*/
public XomwMediaWikiTitleCodecParts splitTitleString(byte[] text, int defaultNamespace) {
byte[] dbkey = Php_str_.str_replace(Byte_ascii.Space, Byte_ascii.Underline, text);
byte[] dbkey = XophpString.str_replace(Byte_ascii.Space, Byte_ascii.Underline, text);
// Initialisation
XomwMediaWikiTitleCodecParts parts = new XomwMediaWikiTitleCodecParts(dbkey, defaultNamespace);

View File

@ -1,31 +0,0 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import org.junit.*; import gplx.core.tests.*;
public class Php_preg___tst {
private final Php_preg___fxt fxt = new Php_preg___fxt();
@Test public void Basic() {fxt.Test__split("a''b''c" , "''", Bool_.Y, "a", "''", "b", "''", "c");}
@Test public void Extend() {fxt.Test__split("a'''b'''c" , "''", Bool_.Y, "a", "'''", "b", "'''", "c");}
@Test public void Eos() {fxt.Test__split("a''" , "''", Bool_.Y, "a", "''");}
}
class Php_preg___fxt {
private final gplx.core.primitives.Int_list rv = new gplx.core.primitives.Int_list();
public void Test__split(String src, String dlm, boolean extend, String... expd) {Test__split(src, 0, String_.Len(src), dlm, extend, expd);}
public void Test__split(String src, int src_bgn, int src_end, String dlm, boolean extend, String... expd) {
byte[][] actl = Php_preg_.Split(rv, Bry_.new_u8(src), src_bgn, src_end, Bry_.new_u8(dlm), extend);
Gftest.Eq__ary(expd, String_.Ary(actl), "find_failed");
}
}

View File

@ -1,85 +0,0 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
import org.junit.*; import gplx.core.tests.*; import gplx.core.btries.*;
public class Php_str___tst {
private final Php_str___fxt fxt = new Php_str___fxt();
@Test public void Strspn_fwd__byte() {
fxt.Test__strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 0, -1, 5); // basic
fxt.Test__strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 1, -1, 4); // bgn
fxt.Test__strspn_fwd__byte("aaaaab", Byte_ascii.Ltr_a, 1, 2, 2); // max
}
@Test public void Strspn_fwd__space_or_tab() {
fxt.Test__strspn_fwd__space_or_tab(" a", 0, -1, 5); // basic
fxt.Test__strspn_fwd__space_or_tab(" a", 1, -1, 4); // bgn
fxt.Test__strspn_fwd__space_or_tab(" a", 1, 2, 2); // max
}
@Test public void Strspn_bwd__byte() {
fxt.Test__strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 5, -1, 5); // basic
fxt.Test__strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 4, -1, 4); // bgn
fxt.Test__strspn_bwd__byte("aaaaab", Byte_ascii.Ltr_a, 4, 2, 2); // max
}
@Test public void Strspn_bwd__space_or_tab() {
fxt.Test__strspn_bwd__space_or_tab(" a", 5, -1, 5); // basic
fxt.Test__strspn_bwd__space_or_tab(" a", 4, -1, 4); // bgn
fxt.Test__strspn_bwd__space_or_tab(" a", 4, 2, 2); // max
}
@Test public void Substr__bgn_is_neg() {
fxt.Test__substr("abcde" , -1, "e");
fxt.Test__substr("abcde" , -3, -1, "cd");
}
@Test public void Strtr() {
fxt.Init__strtr_by_trie("01", "89", "02", "79");
fxt.Test__strtr_by_trie("abc" , "abc"); // found=none
fxt.Test__strtr_by_trie("ab_01_cd" , "ab_89_cd"); // found=one
fxt.Test__strtr_by_trie("ab_01_cd_02_ef", "ab_89_cd_79_ef"); // found=many
fxt.Test__strtr_by_trie("01_ab" , "89_ab"); // BOS
fxt.Test__strtr_by_trie("ab_01" , "ab_89"); // EOS
}
}
class Php_str___fxt {
public void Test__strspn_fwd__byte(String src_str, byte find, int bgn, int max, int expd) {
byte[] src_bry = Bry_.new_u8(src_str);
Gftest.Eq__int(expd, Php_str_.Strspn_fwd__byte(src_bry, find, bgn, max, src_bry.length));
}
public void Test__strspn_fwd__space_or_tab(String src_str, int bgn, int max, int expd) {
byte[] src_bry = Bry_.new_u8(src_str);
Gftest.Eq__int(expd, Php_str_.Strspn_fwd__space_or_tab(src_bry, bgn, max, src_bry.length));
}
public void Test__strspn_bwd__byte(String src_str, byte find, int bgn, int max, int expd) {
Gftest.Eq__int(expd, Php_str_.Strspn_bwd__byte(Bry_.new_u8(src_str), find, bgn, max));
}
public void Test__strspn_bwd__space_or_tab(String src_str, int bgn, int max, int expd) {
Gftest.Eq__int(expd, Php_str_.Strspn_bwd__space_or_tab(Bry_.new_u8(src_str), bgn, max));
}
public void Test__substr(String src_str, int bgn, String expd) {Test__substr(src_str, bgn, String_.Len(src_str), expd);}
public void Test__substr(String src_str, int bgn, int len, String expd) {
Gftest.Eq__str(expd, Php_str_.Substr(Bry_.new_u8(src_str), bgn, len));
}
private Btrie_slim_mgr strtr_trie;
public void Init__strtr_by_trie(String... kvs) {
if (strtr_trie == null) strtr_trie = Btrie_slim_mgr.cs();
int len = kvs.length;
for (int i = 0; i < len; i += 2) {
strtr_trie.Add_str_str(kvs[i], kvs[i + 1]);
}
}
public void Test__strtr_by_trie(String src, String expd) {
Bry_bfr tmp = Bry_bfr_.New();
Btrie_rv trv = new Btrie_rv();
Gftest.Eq__str(expd, Php_str_.Strtr(Bry_.new_u8(src), strtr_trie, tmp, trv));
}
}

View File

@ -1,118 +0,0 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.mediawiki.includes.utls; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*;
public class Xomw_ttl_utl {
// REF.MW: DefaultSettings.php
// Allowed title characters -- regex character class
// Don't change this unless you know what you're doing
//
// Problematic punctuation:
// - []{}|# Are needed for link syntax, never enable these
// - <> Causes problems with HTML escaping, don't use
// - % Enabled by default, minor problems with path to query rewrite rules, see below
// - + Enabled by default, but doesn't work with path to query rewrite rules,
// corrupted by apache
// - ? Enabled by default, but doesn't work with path to PATH_INFO rewrites
//
// All three of these punctuation problems can be avoided by using an alias,
// instead of a rewrite rule of either variety.
//
// The problem with % is that when using a path to query rewrite rule, URLs are
// double-unescaped: once by Apache's path conversion code, and again by PHP. So
// %253F, for example, becomes "?". Our code does not double-escape to compensate
// for this, indeed double escaping would break if the double-escaped title was
// passed in the query String rather than the path. This is a minor security issue
// because articles can be created such that they are hard to view or edit.
//
// In some rare cases you may wish to remove + for compatibility with old links.
//
// Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but
// this breaks interlanguage links
// $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+";
//
// REGEX:
// without-backslash escaping --> \s%!"$&'()*,-./0-9:;=?@A-Z\^_`a-z~x80-xFF+
// rearranged
// letters --> 0-9A-Za-z
// unicode-chars --> x80-xFF
// symbols --> \s%!"$&'()*,-./:;=?@\^_`~+"
// deliberately ignores
// control chars: 00-31,127
// []{}|#<>
public static int Find_fwd_while_title(byte[] src, int src_bgn, int src_end, boolean[] valid) {
int cur = src_bgn;
while (true) {
if (cur == src_end) break;
byte b = src[cur];
int b_len = gplx.core.intls.Utf8_.Len_of_char_by_1st_byte(b);
if (b_len == 1) { // ASCII
if (valid[b & 0xFF]) // valid; EX: "a0A B&$"; PATCH.JAVA:need to convert to unsigned byte
cur++;
else // invalid; EX: "<title>"
break;
}
else { // Multi-byte UTF8; NOTE: all sequences are valid
cur += b_len;
}
}
return cur;
}
private static boolean[] title_chars_valid;
public static boolean[] Title_chars_valid() {
if (title_chars_valid == null) {
title_chars_valid = new boolean[128];
// add num and alpha
for (int i = Byte_ascii.Num_0; i <= Byte_ascii.Num_9; i++)
title_chars_valid[i] = true;
for (int i = Byte_ascii.Ltr_A; i <= Byte_ascii.Ltr_Z; i++)
title_chars_valid[i] = true;
for (int i = Byte_ascii.Ltr_a; i <= Byte_ascii.Ltr_z; i++)
title_chars_valid[i] = true;
// add symbols: \s%!"$&'()*,-./:;=?@\^_`~+"
byte[] symbols = new byte[]
{ Byte_ascii.Space
, Byte_ascii.Percent
, Byte_ascii.Bang
, Byte_ascii.Quote
, Byte_ascii.Amp
, Byte_ascii.Apos
, Byte_ascii.Paren_bgn
, Byte_ascii.Paren_end
, Byte_ascii.Star
, Byte_ascii.Comma
, Byte_ascii.Dash
, Byte_ascii.Dot
, Byte_ascii.Slash
, Byte_ascii.Colon
, Byte_ascii.Semic
, Byte_ascii.Eq
, Byte_ascii.Question
, Byte_ascii.At
, Byte_ascii.Backslash
, Byte_ascii.Pow
, Byte_ascii.Underline
, Byte_ascii.Tick
, Byte_ascii.Tilde
, Byte_ascii.Plus
};
int symbols_len = symbols.length;
for (int i = 0; i < symbols_len; i++)
title_chars_valid[symbols[i]] = true;
}
return title_chars_valid;
}
}

View File

@ -1,213 +0,0 @@
100_core/src/gplx/Array_.java | 20 +-
100_core/src/gplx/Array__tst.java | 20 +-
100_core/src/gplx/Bool_.java | 20 +-
100_core/src/gplx/Bool__tst.java | 20 +-
100_core/src/gplx/Bry_.java | 20 +-
100_core/src/gplx/Bry__tst.java | 20 +-
100_core/src/gplx/Bry_bfr.java | 20 +-
100_core/src/gplx/Bry_bfr_.java | 20 +-
100_core/src/gplx/Bry_bfr_tst.java | 20 +-
100_core/src/gplx/Bry_find_.java | 20 +-
100_core/src/gplx/Bry_find__tst.java | 20 +-
100_core/src/gplx/Bry_fmt.java | 20 +-
100_core/src/gplx/Bry_split_.java | 20 +-
100_core/src/gplx/Bry_split__tst.java | 20 +-
100_core/src/gplx/Byte_.java | 20 +-
100_core/src/gplx/Byte__tst.java | 20 +-
100_core/src/gplx/Byte_ascii.java | 20 +-
100_core/src/gplx/Cancelable.java | 20 +-
100_core/src/gplx/Cancelable_.java | 20 +-
100_core/src/gplx/Char_.java | 20 +-
100_core/src/gplx/CompareAble.java | 20 +-
100_core/src/gplx/CompareAble_.java | 20 +-
100_core/src/gplx/DateAdp.java | 20 +-
100_core/src/gplx/DateAdp_.java | 20 +-
100_core/src/gplx/DateAdp__tst.java | 20 +-
100_core/src/gplx/Datetime_now.java | 20 +-
100_core/src/gplx/Decimal_adp.java | 20 +-
100_core/src/gplx/Decimal_adp_.java | 20 +-
100_core/src/gplx/Decimal_adp__tst.java | 20 +-
100_core/src/gplx/Double_.java | 20 +-
100_core/src/gplx/Double__tst.java | 20 +-
100_core/src/gplx/Enm_.java | 20 +-
100_core/src/gplx/Err.java | 20 +-
100_core/src/gplx/Err_.java | 20 +-
100_core/src/gplx/Err_tst.java | 20 +-
100_core/src/gplx/Float_.java | 20 +-
100_core/src/gplx/GfoMsg.java | 20 +-
100_core/src/gplx/GfoMsgUtl.java | 20 +-
100_core/src/gplx/GfoMsg_.java | 20 +-
100_core/src/gplx/GfoMsg_tst.java | 20 +-
100_core/src/gplx/GfoTemplate.java | 20 +-
100_core/src/gplx/GfoTemplateFactory.java | 20 +-
100_core/src/gplx/Gfo_evt_itm.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_owner.java | 20 +-
100_core/src/gplx/Gfo_evt_mgr_tst.java | 20 +-
100_core/src/gplx/Gfo_invk.java | 20 +-
100_core/src/gplx/Gfo_invk_.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd_mgr.java | 20 +-
100_core/src/gplx/Gfo_invk_cmd_mgr_owner.java | 20 +-
100_core/src/gplx/Gfo_invk_root_wkr.java | 20 +-
100_core/src/gplx/Gfo_invk_to_str.java | 20 +-
100_core/src/gplx/Gfo_log.java | 20 +-
100_core/src/gplx/Gfo_log_.java | 20 +-
100_core/src/gplx/Gfo_log_bfr.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__gui_test.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log_.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg__log_base.java | 20 +-
100_core/src/gplx/Gfo_usr_dlg_base.java | 20 +-
100_core/src/gplx/GfsCtx.java | 20 +-
100_core/src/gplx/Guid_adp.java | 20 +-
100_core/src/gplx/Guid_adp_.java | 20 +-
100_core/src/gplx/Guid_adp__tst.java | 20 +-
100_core/src/gplx/Hash_adp.java | 20 +-
100_core/src/gplx/Hash_adp_.java | 20 +-
100_core/src/gplx/Hash_adp_bry.java | 20 +-
100_core/src/gplx/Hash_adp_bry_tst.java | 20 +-
100_core/src/gplx/Int_.java | 20 +-
100_core/src/gplx/Int__tst.java | 20 +-
100_core/src/gplx/Internal.java | 20 +-
100_core/src/gplx/Io_mgr.java | 20 +-
100_core/src/gplx/Io_mgr__tst.java | 20 +-
100_core/src/gplx/Io_url.java | 20 +-
100_core/src/gplx/Io_url_.java | 20 +-
100_core/src/gplx/Io_url__tst.java | 20 +-
100_core/src/gplx/Keyval.java | 20 +-
100_core/src/gplx/Keyval_.java | 20 +-
100_core/src/gplx/Keyval_hash.java | 20 +-
100_core/src/gplx/Keyval_list.java | 20 +-
100_core/src/gplx/List_adp.java | 20 +-
100_core/src/gplx/List_adp_.java | 20 +-
100_core/src/gplx/List_adp_base.java | 20 +-
100_core/src/gplx/List_adp_tst.java | 20 +-
100_core/src/gplx/Long_.java | 20 +-
100_core/src/gplx/Long__tst.java | 20 +-
100_core/src/gplx/Math_.java | 20 +-
100_core/src/gplx/Math__tst.java | 20 +-
100_core/src/gplx/New.java | 20 +-
100_core/src/gplx/ObjAry.java | 20 +-
100_core/src/gplx/Object_.java | 20 +-
100_core/src/gplx/Object__tst.java | 20 +-
100_core/src/gplx/Ordered_hash.java | 20 +-
100_core/src/gplx/Ordered_hash_.java | 20 +-
100_core/src/gplx/Ordered_hash_base.java | 20 +-
100_core/src/gplx/Ordered_hash_tst.java | 20 +-
100_core/src/gplx/RandomAdp.java | 20 +-
100_core/src/gplx/RandomAdp_.java | 20 +-
100_core/src/gplx/Rls_able.java | 20 +-
100_core/src/gplx/Rls_able_.java | 20 +-
100_core/src/gplx/Short_.java | 20 +-
100_core/src/gplx/String_.java | 20 +-
100_core/src/gplx/String__tst.java | 20 +-
100_core/src/gplx/Tfds.java | 20 +-
100_core/src/gplx/TfdsTstr_fxt.java | 20 +-
100_core/src/gplx/Time_span.java | 20 +-
100_core/src/gplx/Time_span_.java | 20 +-
100_core/src/gplx/To_str_able.java | 20 +-
100_core/src/gplx/To_str_able_.java | 20 +-
100_core/src/gplx/Type_adp_.java | 20 +-
100_core/src/gplx/UsrDlg.java | 20 +-
100_core/src/gplx/UsrDlg_.java | 20 +-
100_core/src/gplx/UsrMsg.java | 20 +-
100_core/src/gplx/UsrMsgWkr.java | 20 +-
100_core/src/gplx/UsrMsgWkr_.java | 20 +-
100_core/src/gplx/UsrMsgWkr_console.java | 20 +-
100_core/src/gplx/UsrMsgWkr_test.java | 20 +-
100_core/src/gplx/Virtual.java | 20 +-
100_core/src/gplx/Yn.java | 20 +-
100_core/src/gplx/core/bits/Bitmask_.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg_.java | 20 +-
100_core/src/gplx/core/brys/Bfr_arg_clearable.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_able.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_able_.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr_mgr.java | 20 +-
100_core/src/gplx/core/brys/Bry_bfr_mkr_tst.java | 20 +-
100_core/src/gplx/core/brys/Bry_err_wkr.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr_old.java | 20 +-
100_core/src/gplx/core/brys/Bry_rdr_tst.java | 20 +-
100_core/src/gplx/core/brys/Bry_split_wkr.java | 20 +-
100_core/src/gplx/core/brys/args/Bfr_arg__bry.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_ary.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_fmt.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__bry_fmtr.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__byte.java | 20 +-
.../gplx/core/brys/args/Bfr_arg__decimal_int.java | 20 +-
100_core/src/gplx/core/brys/args/Bfr_arg__int.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__time.java | 20 +-
.../src/gplx/core/brys/args/Bfr_arg__time_tst.java | 20 +-
100_core/src/gplx/core/brys/fmtrs/Bry_fmtr.java | 20 +-
.../gplx/core/brys/fmtrs/Bry_fmtr_eval_mgr.java | 20 +-
.../gplx/core/brys/fmtrs/Bry_fmtr_eval_mgr_.java | 20 +-
.../core/brys/fmtrs/Bry_fmtr_eval_mgr_gfs.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_itm.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_tst.java | 20 +-
.../src/gplx/core/brys/fmtrs/Bry_fmtr_vals.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bfr_fmt_arg.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bry_fmt_itm.java | 20 +-
.../src/gplx/core/brys/fmts/Bry_fmt_parser_.java | 20 +-
100_core/src/gplx/core/brys/fmts/Bry_fmt_tst.java | 20 +-
.../gplx/core/brys/fmts/Bry_keys_parser_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_bwd_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_bwd_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_fast_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_fast_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_itm_stub.java | 20 +-
100_core/src/gplx/core/btries/Btrie_mgr.java | 20 +-
100_core/src/gplx/core/btries/Btrie_rv.java | 20 +-
100_core/src/gplx/core/btries/Btrie_slim_itm.java | 20 +-
.../src/gplx/core/btries/Btrie_slim_itm_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_slim_mgr.java | 20 +-
.../src/gplx/core/btries/Btrie_slim_mgr_tst.java | 20 +-
100_core/src/gplx/core/btries/Btrie_u8_itm.java | 20 +-
100_core/src/gplx/core/btries/Btrie_u8_mgr.java | 20 +-
100_core/src/gplx/core/consoles/Console_adp.java | 20 +-
100_core/src/gplx/core/consoles/Console_adp_.java | 20 +-
.../src/gplx/core/consoles/Console_adp__mem.java | 20 +-
.../src/gplx/core/consoles/Console_adp__sys.java | 20 +-
100_core/src/gplx/core/criterias/Criteria.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_.java | 20 +-
.../src/gplx/core/criterias/Criteria_between.java | 20 +-
.../gplx/core/criterias/Criteria_bool_base.java | 20 +-
.../src/gplx/core/criterias/Criteria_comp.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_eq.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_fld.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_in.java | 20 +-
.../gplx/core/criterias/Criteria_ioItm_tst.java | 20 +-
.../src/gplx/core/criterias/Criteria_ioMatch.java | 20 +-
.../src/gplx/core/criterias/Criteria_like.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_not.java | 20 +-
100_core/src/gplx/core/criterias/Criteria_tst.java | 20 +-
100_core/src/gplx/core/encoders/B85_fp_.java | 20 +-
100_core/src/gplx/core/encoders/B85_fp__tst.java | 20 +-
100_core/src/gplx/core/encoders/Base85_.java | 20 +-
100_core/src/gplx/core/encoders/Base85__tst.java | 20 +-
100_core/src/gplx/core/encoders/Gfo_hzip_int_.java | 20 +-
100_core/src/gplx/core/encoders/Hex_utl_.java | 20 +-
100_core/src/gplx/core/encoders/Hex_utl__tst.java | 20 +-
100_core/src/gplx/core/envs/Env_.java | 20 +-
100_core/src/gplx/core/envs/Jar_adp_.java | 20 +-
100_core/src/gplx/core/envs/Op_sys.java | 20 +-
100_core/src/gplx/core/envs/Op_sys_.java | 20 +-
100_core/src/gplx/core/envs/Process_adp.java | 20 +-
100_core/src/gplx/core/envs/Process_adp_tst.java | 20 +-
100_core/src/gplx/core/envs/Runtime_.java | 20 +-
100_core/src/gplx/core/envs/System_.java | 20 +-
100_core/src/gplx/core/errs/Err_msg.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFld.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFldList.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoFldList_.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNde.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeFxt.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeList.java | 20 +-
100_core/src/gplx/core/gfo_ndes/GfoNdeList_.java | 20 [