1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2015-01-25 20:56:50 -05:00
parent 1b0042ef8a
commit efaf9dcd00
447 changed files with 10258 additions and 3016 deletions

View File

@@ -25,4 +25,17 @@ public class Gfo_url_arg {
public static Gfo_url_arg new_key_(String key) {
return new Gfo_url_arg(Bry_.new_utf8_(key), Bry_.Empty);
}
public static Gfo_url_arg[] Ary(String... kvs) {
int len = kvs.length;
Gfo_url_arg[] rv = new Gfo_url_arg[len / 2];
String key = null;
for (int i = 0; i < len; ++i) {
String s = kvs[i];
if (i % 2 == 0)
key = s;
else
rv[i / 2] = new Gfo_url_arg(Bry_.new_utf8_(key), Bry_.new_utf8_(s));
}
return rv;
}
}

View File

@@ -60,6 +60,7 @@ public class Gfo_url_parser {
slash_pos = Bry_.Trim_end_pos(src, slash_pos);
site_data.Atrs_set(rel, pos, slash_pos);
}
public Gfo_url Parse(byte[] src) {Gfo_url rv = new Gfo_url(); this.Parse(rv, src, 0, src.length); return rv;}
public boolean Parse(Gfo_url url, byte[] src, int bgn, int end) {
this.url = url;
url.Ini_(src);
@@ -265,6 +266,14 @@ public class Gfo_url_parser {
url.Args_bgn_(bgn - 1); // NOTE: bgn is 1st char after ?; -1 to place at ?
url.Args_((Gfo_url_arg[])args.Xto_ary(Gfo_url_arg.class));
}
private void Args_add(byte[] src, int key_bgn, int key_end, int val_bgn, int val_end) {
encoder.Decode(src, key_bgn, key_end, tmp_bfr, false);
byte[] key = tmp_bfr.Xto_bry_and_clear();
encoder.Decode(src, val_bgn, val_end, tmp_bfr, false);
byte[] val = tmp_bfr.Xto_bry_and_clear();
Gfo_url_arg arg = new Gfo_url_arg(key, val);
args.Add(arg);
}
private void Site_set(byte[] src, int bgn, int end, int dot_count, int dot_pos_0, int dot_pos_1) {
encoder.Decode(src, bgn, end, tmp_bfr, false);
url.Site_(tmp_bfr.Xto_bry_and_clear());
@@ -298,14 +307,6 @@ public class Gfo_url_parser {
encoder.Decode(src, bgn, end, tmp_bfr, false);
url.Anchor_(tmp_bfr.Xto_bry_and_clear());
}
private void Args_add(byte[] src, int key_bgn, int key_end, int val_bgn, int val_end) {
encoder.Decode(src, key_bgn, key_end, tmp_bfr, false);
byte[] key = tmp_bfr.Xto_bry_and_clear();
encoder.Decode(src, val_bgn, val_end, tmp_bfr, false);
byte[] val = tmp_bfr.Xto_bry_and_clear();
Gfo_url_arg arg = new Gfo_url_arg(key, val);
args.Add(arg);
}
private static final Bry_bfr tmp_bfr = Bry_bfr.reset_(500);
public static final byte[] Bry_double_slash = new byte[] {Byte_ascii.Slash, Byte_ascii.Slash};
}

View File

@@ -17,6 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx;
public class Gfo_usr_dlg_base implements Gfo_usr_dlg {
private Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_().Fail_when_invalid_escapes_(false); // do not fail b/c msgs may contain excerpt of random text; EX:[[User:A|~A~]] DATE:2014-11-28
private Bry_bfr tmp_bfr = Bry_bfr.new_();
public Gfo_usr_dlg_ui Ui_wkr() {return ui_wkr;} public void Ui_wkr_(Gfo_usr_dlg_ui v) {ui_wkr = v;} Gfo_usr_dlg_ui ui_wkr = Gfo_usr_dlg_ui_.Null;
public Gfo_log_wtr Log_wtr() {return log_wtr;} public void Log_wtr_(Gfo_log_wtr v) {log_wtr = v;} Gfo_log_wtr log_wtr;
@gplx.Virtual public void Clear() {ui_wkr.Clear();}
@@ -41,15 +43,15 @@ public class Gfo_usr_dlg_base implements Gfo_usr_dlg {
log_wtr.Log_err(Err_.Message_gplx(rv));
return rv;
}
String Bld_msg_many(String grp_key, String msg_key, String fmt, Object[] args) {
private String Bld_msg_many(String grp_key, String msg_key, String fmt, Object[] args) {
tmp_fmtr.Fmt_(fmt).Bld_bfr_many(tmp_bfr, args);
return tmp_bfr.Xto_str_and_clear();
} private Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_(); Bry_bfr tmp_bfr = Bry_bfr.new_();
String Bld_msg_one(String grp_key, String msg_key, String fmt, Object val) {
}
private String Bld_msg_one(String grp_key, String msg_key, String fmt, Object val) {
tmp_fmtr.Fmt_(fmt).Bld_bfr_one(tmp_bfr, val);
return tmp_bfr.Xto_str_and_clear();
}
String Bld_msg_none(String grp_key, String msg_key, String fmt) {
private String Bld_msg_none(String grp_key, String msg_key, String fmt) {
return fmt;
}
private void Ui_wkr_parse(String s) {