mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.7.2.1'
This commit is contained in:
@@ -262,10 +262,12 @@ public static final int
|
||||
private static final Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_().Fail_when_invalid_escapes_(false);
|
||||
private static final Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
|
||||
public static void update_val_(Xol_msg_itm itm, byte[] val) {
|
||||
boolean has_fmt_arg = tmp_fmtr.Fmt_(val).Compile().Fmt_args_exist();
|
||||
boolean has_tmpl_txt = Bry_find_.Find_fwd(val, Xop_curly_bgn_lxr.Hook, 0) != -1;
|
||||
val = trie_space.Replace(tmp_bfr, val, 0, val.length);
|
||||
itm.Atrs_set(val, has_fmt_arg, has_tmpl_txt);
|
||||
synchronized (tmp_fmtr) { // LOCK:static-objs; DATE:2016-07-07
|
||||
boolean has_fmt_arg = tmp_fmtr.Fmt_(val).Compile().Fmt_args_exist();
|
||||
boolean has_tmpl_txt = Bry_find_.Find_fwd(val, Xop_curly_bgn_lxr.Hook, 0) != -1;
|
||||
val = trie_space.Replace(tmp_bfr, val, 0, val.length);
|
||||
itm.Atrs_set(val, has_fmt_arg, has_tmpl_txt);
|
||||
}
|
||||
}
|
||||
public static final byte[] Bry_nbsp = Byte_.Ary_by_ints(194, 160);
|
||||
private static final Btrie_slim_mgr trie_space = Btrie_slim_mgr.cs() // MW:cache/MessageCache.php|get|Fix for trailing whitespace, removed by textarea|DATE:2014-04-29
|
||||
@@ -511,8 +513,10 @@ case Xol_msg_itm_.Id_xowa_wikidata_links_special: return new_(Xol_msg_itm_.Id_xo
|
||||
}
|
||||
}
|
||||
public static byte[] eval_(Bry_bfr bfr, Xol_msg_itm tmp_msg_itm, byte[] val, Object... args) {
|
||||
val = gplx.xowa.apps.gfs.Xoa_gfs_php_mgr.Xto_gfs(bfr, val);
|
||||
update_val_(tmp_msg_itm, val);
|
||||
return tmp_fmtr.Bld_bry_many(bfr, args);
|
||||
synchronized (tmp_fmtr) { // LOCK:static-objs; DATE:2016-07-07
|
||||
val = gplx.xowa.apps.gfs.Xoa_gfs_php_mgr.Xto_gfs(bfr, val);
|
||||
update_val_(tmp_msg_itm, val);
|
||||
return tmp_fmtr.Bld_bry_many(bfr, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class Xol_msg_mgr_ {
|
||||
msg_val = tmp_bfr.To_bry_and_clear();
|
||||
}
|
||||
if (has_tmpl) {
|
||||
Xop_ctx sub_ctx = Xop_ctx.new_sub_(wiki); Xop_tkn_mkr tkn_mkr = sub_ctx.Tkn_mkr();
|
||||
Xop_ctx sub_ctx = Xop_ctx.new_sub_(wiki.Parser_mgr().Ctx()); Xop_tkn_mkr tkn_mkr = sub_ctx.Tkn_mkr();
|
||||
Xop_root_tkn sub_root = tkn_mkr.Root(msg_val);
|
||||
msg_val = wiki.Parser_mgr().Main().Parse_text_to_wtxt(sub_root, sub_ctx, tkn_mkr, msg_val);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ public class Xol_msg_mgr_ {
|
||||
msg_in_wiki = wiki.Msg_mgr().Get_or_make(msg_key);
|
||||
Xoae_page msg_page = Get_msg_itm_from_db(wiki, lang, msg_key, msg_key_sub_root);
|
||||
byte[] msg_val = Bry_.Empty;
|
||||
if (msg_page.Missing()) { // [[MediaWiki:key/fallback]] still not found; search "lang.gfs";
|
||||
if (msg_page.Db().Page().Exists_n()) { // [[MediaWiki:key/fallback]] still not found; search "lang.gfs";
|
||||
Xol_msg_itm msg_in_lang = Get_msg_itm_from_gfs(wiki, lang, msg_key_sub_root);
|
||||
if (msg_in_lang == null) {
|
||||
msg_val = tmp_bfr.Add_byte(Byte_ascii.Lt).Add(msg_key).Add_byte(Byte_ascii.Gt).To_bry_and_clear(); // set val to <msg_key>
|
||||
@@ -94,8 +94,8 @@ public class Xol_msg_mgr_ {
|
||||
msg_in_wiki.Src_(Xol_msg_itm.Src_lang);
|
||||
}
|
||||
}
|
||||
else { // page found; dump entire contents
|
||||
msg_val = Xoa_gfs_php_mgr.Xto_gfs(tmp_bfr, msg_page.Data_raw()); // note that MediaWiki msg's use php arg format ($1); xowa.gfs msgs are already converted
|
||||
else { // page found; dump entire contents
|
||||
msg_val = Xoa_gfs_php_mgr.Xto_gfs(tmp_bfr, msg_page.Db().Text().Text_bry()); // note that MediaWiki msg's use php arg format ($1); xowa.gfs msgs are already converted
|
||||
msg_in_wiki.Src_(Xol_msg_itm.Src_wiki);
|
||||
}
|
||||
Xol_msg_itm_.update_val_(msg_in_wiki, msg_val);
|
||||
@@ -105,14 +105,14 @@ public class Xol_msg_mgr_ {
|
||||
byte[] ns_bry = wiki.Ns_mgr().Ns_mediawiki().Name_db_w_colon();
|
||||
Xoa_ttl ttl = wiki.Ttl_parse(Bry_.Add(ns_bry, msg_key)); // ttl="MediaWiki:msg_key"; note that there may be "/lang"; EX:pl.d:Wikislownik:Bar/Archiwum_6 and newarticletext/pl
|
||||
Xoae_page rv = ttl == null ? Xoae_page.Empty : wiki.Data_mgr().Load_page_by_ttl_for_msg(ttl);
|
||||
if (rv.Missing()) { // [[MediaWiki:key]] not found; search for [[MediaWiki:key/fallback]]
|
||||
if (rv.Db().Page().Exists_n()) { // [[MediaWiki:key]] not found; search for [[MediaWiki:key/fallback]]
|
||||
byte[][] fallback_ary = lang.Fallback_bry_ary();
|
||||
int fallback_ary_len = fallback_ary.length;
|
||||
for (int i = 0; i < fallback_ary_len; i++) {
|
||||
byte[] fallback = fallback_ary[i];
|
||||
ttl = wiki.Ttl_parse(Bry_.Add(ns_bry, msg_key_sub_root, Slash_bry, fallback)); // ttl="MediaWiki:msg_key/fallback"
|
||||
rv = ttl == null ? Xoae_page.Empty : wiki.Data_mgr().Load_page_by_ttl_for_msg(ttl);
|
||||
if (!rv.Missing()) break;
|
||||
if (rv.Db().Page().Exists()) break;
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
|
||||
@@ -49,7 +49,7 @@ class Xol_msg_mgr_fxt {
|
||||
}
|
||||
public void Test_mediaWiki_msg(String raw, String expd) {
|
||||
byte[] msg_ttl = Bry_.new_a7("MediaWiki:msg_ttl");
|
||||
wiki.Db_mgr().Save_mgr().Data_create(Xoa_ttl.parse(wiki, msg_ttl), Bry_.new_a7(raw));
|
||||
wiki.Db_mgr().Save_mgr().Data_create(Xoa_ttl.Parse(wiki, msg_ttl), Bry_.new_a7(raw));
|
||||
Tfds.Eq(expd, String_.new_u8(wiki.Msg_mgr().Val_by_key_obj(Bry_.new_a7("msg_ttl"))));
|
||||
}
|
||||
public void Test_val_html_accesskey_and_title(String init_title, String init_accesskey, String expd) {
|
||||
|
||||
Reference in New Issue
Block a user