From e687f23586f93a8db8345bb02c6a43c93b2aa7fa Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Thu, 1 Jun 2017 23:15:35 -0400 Subject: [PATCH] ParserFunctions: Fix broken navboxes on many fr.v pages --- 400_xowa/.classpath | 1 + .../parsers/mediawikis/Xow_page_cache_wkr__embeddable.java | 4 ++-- .../src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_kvp_wtr.java | 2 +- 400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_tst.java | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/400_xowa/.classpath b/400_xowa/.classpath index 51d3ee90a..e624119ef 100644 --- a/400_xowa/.classpath +++ b/400_xowa/.classpath @@ -1,5 +1,6 @@ + diff --git a/400_xowa/src/gplx/xowa/addons/parsers/mediawikis/Xow_page_cache_wkr__embeddable.java b/400_xowa/src/gplx/xowa/addons/parsers/mediawikis/Xow_page_cache_wkr__embeddable.java index a3b33315c..88468f983 100644 --- a/400_xowa/src/gplx/xowa/addons/parsers/mediawikis/Xow_page_cache_wkr__embeddable.java +++ b/400_xowa/src/gplx/xowa/addons/parsers/mediawikis/Xow_page_cache_wkr__embeddable.java @@ -25,7 +25,7 @@ class Xow_page_cache_wkr__embeddable implements gplx.xowa.wikis.caches.Xow_page_ public byte[] Get_page_or_null(byte[] full_db) { byte[] wikitext = null; - // loop to handle redirects + // loop to handle redirects; DATE:2017-05-29 int loops = 0; while (loops++ < 5) { wikitext = Bry_.new_u8(cbk.LoadWikitext(String_.new_u8(full_db))); @@ -34,7 +34,7 @@ class Xow_page_cache_wkr__embeddable implements gplx.xowa.wikis.caches.Xow_page_ if (redirect_ttl == null) { break; } - // redirect + // redirect; update title and continue; else { full_db = redirect_ttl.Full_db(); continue; diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_kvp_wtr.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_kvp_wtr.java index a759b9b34..013528b19 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_kvp_wtr.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_kvp_wtr.java @@ -28,7 +28,7 @@ class Pfunc_tag_kvp_wtr { if (key_bgn != -1) tmp.Add_byte(Byte_ascii.Eq); tmp.Add_byte(Byte_ascii.Quote); - tmp.Add(Bry_.Mid(kvp_bry, val_bgn, val_end)); + tmp.Add_bry_escape_html(kvp_bry, val_bgn, val_end); // PURPOSE: escape html in atrs; PAGE:fr.v:France; DATE:2017-06-01 tmp.Add_byte(Byte_ascii.Quote); } } diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_tst.java index d505b171a..85857e4b7 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag_tst.java @@ -26,7 +26,8 @@ public class Pfunc_tag_tst { @Test public void Tmpl() {fxt.Test_html_full_str("{{#tag:pre|a|{{#switch:a|a=id}}=c}}" , "
a
");} // PURPOSE: args must be evaluated @Test public void Ws_all() {fxt.Test_html_full_str("{{#tag:pre|a| id = b }}" , "
a
");} @Test public void Ws_quoted() {fxt.Test_html_full_str("{{#tag:pre|a| id = ' b ' }}" , "
a
");} - @Test public void Err_bad_key() {fxt.Test_html_full_str("{{#tag:pre|a|id=val|b}}" , "
a
");} // PURPOSE: b was failing b/c id was larger and key_end set to 4 (whereas b was len=1) + @Test public void Err_bad_key() {fxt.Test_html_full_str("{{#tag:pre|a|id=val|b}}" , "
a
");} // PURPOSE: b was failing b/c id was larger and key_end set to 4 (whereas b was len=1) + @Test public void Html_is_escaped() {fxt.Test_html_full_str("{{#tag:pre|a|id='
'}}" , "
a
");} // PURPOSE: escape html in atrs; PAGE:fr.v:France; DATE:2017-06-01 // @Test public void Missing_val() {fxt.ini_Msg(Mwl_tag_rsc.Instance.Invalid).Test_parse_tmpl_str_test("{{#tag:pre|a|id=}}" , "{{test}}" , "");} // see {{Reflist|colwidth=30em}} -> a{{#tag:references||group=}} -> "" // @Test public void Err() { // fxt.Test_parse_tmpl_str_test("{{#tag:ref|George Robertson announced in January 2003 that he would be stepping down in December. {{cite news|title =NATO Secretary General to Leave His Post in December After 4 Years |first = Craig | last = Smith | work = The New York Times | date = January 23, 2003| url = http://www.nytimes.com/2003/01/23/world/nato-secretary-general-to-leave-his-post-in-december-after-4-years.html?scp=2&sq=lord+robertson&st=nyt|accessdate = 2009-03-29}} Jaap de Hoop Scheffer was selected as his successor, but could not assume the office until January 2004 because of his commitment in the Dutch Parliament. {{cite news|title = Jaap de Hoop Scheffer | work = Newsmakers | issue = 1 | publisher = Thomson Gale | date = January 1, 2005}} Robertson was asked to extend his term until Scheffer was ready, but declined, so Minuto-Rizzo, the Deputy Secretary General, took over in the interim. |group=N|}}"