diff --git a/100_core/src/gplx/core/brys/Bry_rdr.java b/100_core/src/gplx/core/brys/Bry_rdr.java
index 14834b795..2bf1bbb36 100644
--- a/100_core/src/gplx/core/brys/Bry_rdr.java
+++ b/100_core/src/gplx/core/brys/Bry_rdr.java
@@ -42,7 +42,7 @@ public class Bry_rdr {
public int Read_int_to_semic() {return Read_int_to(Byte_ascii.Semic);}
public int Read_int_to_comma() {return Read_int_to(Byte_ascii.Comma);}
public int Read_int_to_pipe() {return Read_int_to(Byte_ascii.Pipe);}
- public int Read_int_to_nl() {return Read_int_to(Byte_ascii.NewLine);}
+ public int Read_int_to_nl() {return Read_int_to(Byte_ascii.Nl);}
public int Read_int_to_quote() {return Read_int_to(Byte_ascii.Quote);}
public int Read_int_to_non_num(){return Read_int_to(Byte_ascii.Nil);}
public int Read_int_to(byte to_char) {
@@ -74,7 +74,7 @@ public class Bry_rdr {
}
return bgn == pos ? or_int : rv * negative;
}
- public byte[] Read_bry_to_nl() {return Read_bry_to(Byte_ascii.NewLine);}
+ public byte[] Read_bry_to_nl() {return Read_bry_to(Byte_ascii.Nl);}
public byte[] Read_bry_to_semic() {return Read_bry_to(Byte_ascii.Semic);}
public byte[] Read_bry_to_pipe() {return Read_bry_to(Byte_ascii.Pipe);}
public byte[] Read_bry_to_quote() {return Read_bry_to(Byte_ascii.Quote);}
@@ -104,7 +104,7 @@ public class Bry_rdr {
@gplx.Virtual public Bry_rdr Skip_ws() {
while (pos < src_len) {
switch (src[pos]) {
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space:
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space:
++pos;
break;
default:
diff --git a/100_core/src/gplx/core/js/Js_wtr.java b/100_core/src/gplx/core/js/Js_wtr.java
new file mode 100644
index 000000000..647fec495
--- /dev/null
+++ b/100_core/src/gplx/core/js/Js_wtr.java
@@ -0,0 +1,107 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.core.js; import gplx.*; import gplx.core.*;
+public class Js_wtr {
+ private final Bry_bfr bfr = Bry_bfr.reset_(255);
+ private int arg_idx = 0, ary_idx = 0;
+ public byte Quote_char() {return quote_char;} public Js_wtr Quote_char_(byte v) {quote_char = v; return this;} private byte quote_char = Byte_ascii.Quote;
+ public void Clear() {bfr.Clear();}
+ public String To_str() {return bfr.Xto_str();}
+ public String To_str_and_clear() {return bfr.Xto_str_and_clear();}
+ public Js_wtr Func_init(String name) {return Func_init(Bry_.new_u8(name));}
+ public Js_wtr Func_init(byte[] name) {
+ bfr.Add(name).Add_byte(Byte_ascii.Paren_bgn);
+ arg_idx = 0;
+ return this;
+ }
+ public Js_wtr Func_term() {
+ bfr.Add_byte(Byte_ascii.Paren_end).Add_byte_semic();
+ return this;
+ }
+ public Js_wtr Prm_bry(byte[] bry) {
+ Prm_spr();
+ Write_val(bry);
+ return this;
+ }
+ public Js_wtr Prm_obj_ary(Object[] ary) {
+ int ary_len = ary.length;
+ for (int i = 0; i < ary_len; ++i) {
+ Object itm = ary[i];
+ if (i != 0) bfr.Add_byte(Byte_ascii.Comma);
+ boolean val_needs_quotes = true;
+ if ( ClassAdp_.Eq_typeSafe(itm, Bool_.Cls_ref_type)
+ || ClassAdp_.Eq_typeSafe(itm, Int_.Cls_ref_type)
+ || ClassAdp_.Eq_typeSafe(itm, Long_.Cls_ref_type)
+ ) {
+ val_needs_quotes = false;
+ }
+ if (val_needs_quotes)
+ Write_val(Bry_.new_u8(Object_.Xto_str_strict_or_null_mark(itm)));
+ else
+ bfr.Add_obj_strict(itm);
+ }
+ return this;
+ }
+ public Js_wtr Ary_init() {
+ ary_idx = 0;
+ bfr.Add_byte(Byte_ascii.Brack_bgn);
+ return this;
+ }
+ public Js_wtr Ary_term() {
+ bfr.Add_byte(Byte_ascii.Brack_end);
+ return this;
+ }
+ public void Prm_spr() {
+ if (arg_idx != 0) bfr.Add_byte(Byte_ascii.Comma);
+ ++arg_idx;
+ }
+ private void Ary_spr() {
+ if (ary_idx != 0) bfr.Add_byte(Byte_ascii.Comma);
+ ++ary_idx;
+ }
+ public Js_wtr Ary_bry(byte[] bry) {
+ Ary_spr();
+ Write_val(bry);
+ return this;
+ }
+ private Js_wtr Write_keyword_return() {bfr.Add(Keyword_return); return this;}
+ public Js_wtr Write_statement_return_func(String func, Object... args) {
+ this.Write_keyword_return();
+ this.Func_init(func);
+ this.Prm_obj_ary(args);
+ this.Func_term();
+ return this;
+ }
+ public void Write_val(byte[] bry) {
+ bfr.Add_byte(quote_char);
+ int len = bry.length;
+ for (int i = 0; i < len; i++) {
+ byte b = bry[i];
+ switch (b) {
+ case Byte_ascii.Backslash: // "\" -> "\\"; needed else js will usurp \ as escape; EX: "\&" -> "&"; DATE:2014-06-24
+ case Byte_ascii.Quote:
+ case Byte_ascii.Apos: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(b); break;
+ case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break; // "\n" -> "\\n"
+ case Byte_ascii.Cr: break;// skip
+ default: bfr.Add_byte(b); break;
+ }
+ }
+ bfr.Add_byte(quote_char);
+ }
+ private static final byte[] Keyword_return = Bry_.new_a7("return ");
+}
diff --git a/400_xowa/src/gplx/web/js/Js_wtr_tst.java b/100_core/src/gplx/core/js/Js_wtr_tst.java
similarity index 87%
rename from 400_xowa/src/gplx/web/js/Js_wtr_tst.java
rename to 100_core/src/gplx/core/js/Js_wtr_tst.java
index 079e46b27..46a98d32d 100644
--- a/400_xowa/src/gplx/web/js/Js_wtr_tst.java
+++ b/100_core/src/gplx/core/js/Js_wtr_tst.java
@@ -15,13 +15,14 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.web.js; import gplx.*; import gplx.web.*;
+package gplx.core.js; import gplx.*; import gplx.core.*;
import org.junit.*;
public class Js_wtr_tst {
@Before public void Init() {fxt.Clear();} private Js_wtr_fxt fxt = new Js_wtr_fxt();
@Test public void Basic() {
fxt.Test_write_val_html("abc" , "'abc'");
fxt.Test_write_val_html("a'b" , "'a\\'b'");
+ fxt.Test_write_val_html("a\"b" , "'a\\\"b'");
fxt.Test_write_val_html("a\nb" , "'a\\nb'");
fxt.Test_write_val_html("a\rb" , "'ab'");
fxt.Test_write_val_html("a\\&b" , "'a\\\\&b'"); // PURPOSE: backslashes need to be escaped; need for MathJax and "\&"; PAGE:Electromagnetic_field_tensor; DATE:2014-06-24
@@ -34,7 +35,7 @@ class Js_wtr_fxt {
wtr.Quote_char_(Byte_ascii.Apos);
}
public void Test_write_val_html(String raw, String expd) {
- wtr.Add_str_quote_html(Bry_.new_u8(raw));
- Tfds.Eq(expd, wtr.Xto_str_and_clear());
+ wtr.Write_val(Bry_.new_u8(raw));
+ Tfds.Eq(expd, wtr.To_str_and_clear());
}
}
diff --git a/100_core/src_110_primitive/gplx/Bry_.java b/100_core/src_110_primitive/gplx/Bry_.java
index cca325a6e..0af4d566d 100644
--- a/100_core/src_110_primitive/gplx/Bry_.java
+++ b/100_core/src_110_primitive/gplx/Bry_.java
@@ -364,7 +364,7 @@ public class Bry_ {
}
return rv;
}
- public static final byte[] Trim_ary_ws = mask_(256, Byte_ascii.Tab, Byte_ascii.NewLine, Byte_ascii.CarriageReturn, Byte_ascii.Space);
+ public static final byte[] Trim_ary_ws = mask_(256, Byte_ascii.Tab, Byte_ascii.Nl, Byte_ascii.Cr, Byte_ascii.Space);
public static byte[] Trim(byte[] src) {return Trim(src, 0, src.length, true, true, Trim_ary_ws);}
public static byte[] Trim(byte[] src, int bgn, int end) {return Trim(src, bgn, end, true, true, Trim_ary_ws);}
public static byte[] Trim(byte[] src, int bgn, int end, boolean trim_bgn, boolean trim_end, byte[] trim_ary) {
@@ -456,7 +456,7 @@ public class Bry_ {
for (int i = src_bgn; i < src_len; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Nl: case Byte_ascii.Cr:
break;
default:
return i;
@@ -468,7 +468,7 @@ public class Bry_ {
for (int i = src_bgn; i > -1; i--) {
byte b = src[i];
switch (b) {
- case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Nl: case Byte_ascii.Cr:
break;
default:
return i;
@@ -676,7 +676,7 @@ public class Bry_ {
break;
case Byte_ascii.Dash:
return i == bgn ? rv * -1 : or;
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
if (numbers_seen)
ws_seen = true;
break;
@@ -930,7 +930,7 @@ public class Bry_ {
public static int Trim_end_pos(byte[] src, int end) {
for (int i = end - 1; i > -1; i--) {
switch (src[i]) {
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space:
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space:
break;
default:
return i + 1;
@@ -960,13 +960,13 @@ public class Bry_ {
List_adp rv = List_adp_.new_();
while (true) {
boolean last = src_pos == src_len;
- byte b = last ? Byte_ascii.NewLine : src[src_pos];
+ byte b = last ? Byte_ascii.Nl : src[src_pos];
int nxt_bgn = src_pos + 1;
switch (b) {
- case Byte_ascii.CarriageReturn:
- case Byte_ascii.NewLine:
- if ( b == Byte_ascii.CarriageReturn // check for crlf
- && nxt_bgn < src_len && src[nxt_bgn] == Byte_ascii.NewLine) {
+ case Byte_ascii.Cr:
+ case Byte_ascii.Nl:
+ if ( b == Byte_ascii.Cr // check for crlf
+ && nxt_bgn < src_len && src[nxt_bgn] == Byte_ascii.Nl) {
++nxt_bgn;
}
if (last && (src_pos - fld_bgn == 0)) {} // ignore trailing itms
diff --git a/100_core/src_110_primitive/gplx/Bry_bfr.java b/100_core/src_110_primitive/gplx/Bry_bfr.java
index 014a2cac0..de0b0c2e1 100644
--- a/100_core/src_110_primitive/gplx/Bry_bfr.java
+++ b/100_core/src_110_primitive/gplx/Bry_bfr.java
@@ -159,7 +159,7 @@ public class Bry_bfr {
public Bry_bfr Add_byte_backslash() {return Add_byte(Byte_ascii.Backslash);}
public Bry_bfr Add_byte_quote() {return Add_byte(Byte_ascii.Quote);}
public Bry_bfr Add_byte_space() {return Add_byte(Byte_ascii.Space);}
- public Bry_bfr Add_byte_nl() {return Add_byte(Byte_ascii.NewLine);}
+ public Bry_bfr Add_byte_nl() {return Add_byte(Byte_ascii.Nl);}
public Bry_bfr Add_byte_dot() {return Add_byte(Byte_ascii.Dot);}
public Bry_bfr Add_byte(byte val) {
int new_pos = bfr_len + 1;
@@ -362,7 +362,7 @@ public class Bry_bfr {
for (int i = bgn; i < end; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.NewLine: bfr[bfr_len] = Byte_ascii.Backslash; bfr[bfr_len + 1] = Byte_ascii.Ltr_n; bfr_len += 2; break;
+ case Byte_ascii.Nl: bfr[bfr_len] = Byte_ascii.Backslash; bfr[bfr_len + 1] = Byte_ascii.Ltr_n; bfr_len += 2; break;
case Byte_ascii.Tab: bfr[bfr_len] = Byte_ascii.Backslash; bfr[bfr_len + 1] = Byte_ascii.Ltr_t; bfr_len += 2; break;
case Byte_ascii.Backslash: bfr[bfr_len] = Byte_ascii.Backslash; bfr[bfr_len + 1] = Byte_ascii.Backslash; bfr_len += 2; break;
default: bfr[bfr_len] = b; ++bfr_len; break;
@@ -399,6 +399,23 @@ public class Bry_bfr {
else ((Bry_fmtr_arg)o).XferAry(this, 0);
return this;
}
+ public Bry_bfr Add_obj_strict(Object o) {
+ if (o == null) return this; // treat null as empty String;
+ Class> o_type = o.getClass();
+ if (o_type == byte[].class) Add((byte[])o);
+ else if (o_type == Integer.class) Add_int_variable(Int_.cast_(o));
+ else if (o_type == Byte.class) Add_byte(Byte_.cast_(o));
+ else if (o_type == Long.class) Add_long_variable(Long_.cast_(o));
+ else if (o_type == String.class) Add_str((String)o);
+ else if (o_type == Bry_bfr.class) Add_bfr_and_preserve((Bry_bfr)o);
+ else if (o_type == DateAdp.class) Add_dte((DateAdp)o);
+ else if (o_type == Io_url.class) Add(((Io_url)o).RawBry());
+ else if (o_type == Boolean.class) Add_bool(Bool_.cast_(o));
+ else if (o_type == Double.class) Add_double(Double_.cast_(o));
+ else if (o_type == Float.class) Add_float(Float_.cast_(o));
+ else ((Bry_fmtr_arg)o).XferAry(this, 0);
+ return this;
+ }
public Bry_bfr Add_yn(boolean v) {Add_byte(v ? Byte_ascii.Ltr_y : Byte_ascii.Ltr_n); return this;}
public Bry_bfr Add_base85_len_5(int v) {return Add_base85(v, 5);}
public Bry_bfr Add_base85(int v, int pad) {
@@ -409,7 +426,7 @@ public class Bry_bfr {
return this;
}
public boolean Match_end_byt(byte b) {return bfr_len == 0 ? false : bfr[bfr_len - 1] == b;}
- public boolean Match_end_byt_nl_or_bos() {return bfr_len == 0 ? true : bfr[bfr_len - 1] == Byte_ascii.NewLine;}
+ public boolean Match_end_byt_nl_or_bos() {return bfr_len == 0 ? true : bfr[bfr_len - 1] == Byte_ascii.Nl;}
public boolean Match_end_ary(byte[] ary) {return Bry_.Match(bfr, bfr_len - ary.length, bfr_len, ary);}
public Bry_bfr Insert_at(int add_pos, byte[] add_bry) {return Insert_at(add_pos, add_bry, 0, add_bry.length);}
public Bry_bfr Insert_at(int add_pos, byte[] add_bry, int add_bgn, int add_end) {
diff --git a/100_core/src_110_primitive/gplx/Bry_finder.java b/100_core/src_110_primitive/gplx/Bry_finder.java
index 656af4fa7..4368807f1 100644
--- a/100_core/src_110_primitive/gplx/Bry_finder.java
+++ b/100_core/src_110_primitive/gplx/Bry_finder.java
@@ -98,7 +98,7 @@ public class Bry_finder {
for (int i = cur; i > -1; i--) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
rv = i;
break;
default:
@@ -112,7 +112,7 @@ public class Bry_finder {
for (int i = cur; i > -1; --i) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
return i;
}
}
@@ -125,7 +125,7 @@ public class Bry_finder {
for (int i = cur; i < end; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
rv = i;
break;
default:
@@ -140,7 +140,7 @@ public class Bry_finder {
for (int i = cur; i >= end; i--) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
break;
default:
return i;
@@ -153,7 +153,7 @@ public class Bry_finder {
for (int i = cur; i >= end; i--) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
break;
default:
return i;
@@ -199,7 +199,7 @@ public class Bry_finder {
while (true) {
if (cur == end) return Bry_finder.Not_found;
switch (src[cur]) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
return cur;
default:
++cur;
@@ -240,7 +240,7 @@ public class Bry_finder {
if (cur == end) return cur;
try {
switch (src[cur]) {
- case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Nl: case Byte_ascii.Cr:
case Byte_ascii.Space: case Byte_ascii.Tab: ++cur; break;
default: return cur;
}
@@ -282,9 +282,9 @@ public class Bry_finder {
if (cur == end) return cur;
switch (src[cur]) {
case Byte_ascii.Space:
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
case Byte_ascii.Tab:
- case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Cr:
++cur;
break;
default:
diff --git a/100_core/src_110_primitive/gplx/Bry_fmtr.java b/100_core/src_110_primitive/gplx/Bry_fmtr.java
index 91bc0ab29..f61abfd99 100644
--- a/100_core/src_110_primitive/gplx/Bry_fmtr.java
+++ b/100_core/src_110_primitive/gplx/Bry_fmtr.java
@@ -193,7 +193,7 @@ public class Bry_fmtr {
}
else { // ~{0}; ~~ -> ~; ~n -> newLine; ~t -> tab
if (nxt_byte == char_escape) tmp_byte = char_escape;
- else if (nxt_byte == char_escape_nl) tmp_byte = Byte_ascii.NewLine;
+ else if (nxt_byte == char_escape_nl) tmp_byte = Byte_ascii.Nl;
else if (nxt_byte == char_escape_tab) tmp_byte = Byte_ascii.Tab;
else {
if (fail_when_invalid_escapes) throw Err_.new_("unknown escape code").Add("code", Char_.XbyInt(nxt_byte)).Add("fmt_pos", fmt_pos + 1);
diff --git a/100_core/src_110_primitive/gplx/Byte_ascii.java b/100_core/src_110_primitive/gplx/Byte_ascii.java
index 2f5c7c19f..8739f50a6 100644
--- a/100_core/src_110_primitive/gplx/Byte_ascii.java
+++ b/100_core/src_110_primitive/gplx/Byte_ascii.java
@@ -19,10 +19,10 @@ package gplx;
public class Byte_ascii {
public static final byte
Nil = 0 , Backfeed = 8, Tab = 9
- , NewLine = 10, Formfeed = 12, CarriageReturn = 13
+ , Nl = 10, Formfeed = 12, Cr = 13
, Space = 32, Bang = 33, Quote = 34
, Hash = 35, Dollar = 36, Percent = 37, Amp = 38, Apos = 39
- , Paren_bgn = 40, Paren_end = 41, Asterisk = 42, Plus = 43, Comma = 44
+ , Paren_bgn = 40, Paren_end = 41, Star = 42, Plus = 43, Comma = 44
, Dash = 45, Dot = 46, Slash = 47, Num_0 = 48, Num_1 = 49
, Num_2 = 50, Num_3 = 51, Num_4 = 52, Num_5 = 53, Num_6 = 54
, Num_7 = 55, Num_8 = 56, Num_9 = 57, Colon = 58, Semic = 59
@@ -49,7 +49,7 @@ public class Byte_ascii {
switch (b) {
case Byte_ascii.Bang: case Byte_ascii.Quote:
case Byte_ascii.Hash: case Byte_ascii.Dollar: case Byte_ascii.Percent: case Byte_ascii.Amp: case Byte_ascii.Apos:
- case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk: case Byte_ascii.Plus: case Byte_ascii.Comma:
+ case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star: case Byte_ascii.Plus: case Byte_ascii.Comma:
case Byte_ascii.Dash: case Byte_ascii.Dot: case Byte_ascii.Slash:
case Byte_ascii.Colon: case Byte_ascii.Semic:
case Byte_ascii.Lt: case Byte_ascii.Eq: case Byte_ascii.Gt: case Byte_ascii.Question: case Byte_ascii.At:
@@ -68,7 +68,7 @@ public class Byte_ascii {
}
public static boolean Is_ws(byte b) {
switch (b) {
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space: return true;
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space: return true;
default: return false;
}
}
@@ -79,19 +79,17 @@ public class Byte_ascii {
public static byte Case_upper(byte b) {
return b > 96 && b < 123
? (byte)(b - 32)
- : b
- ;
+ : b;
}
public static byte Case_lower(byte b) {
return b > 64 && b < 91
? (byte)(b + 32)
- : b
- ;
+ : b;
}
public static final byte[] Space_len2 = new byte[] {Space, Space}, Space_len4 = new byte[] {Space, Space, Space, Space};
public static final byte[]
Tab_bry = new byte[] {Byte_ascii.Tab}
- , NewLine_bry = new byte[] {Byte_ascii.NewLine}
+ , Nl_bry = new byte[] {Byte_ascii.Nl}
, Bang_bry = new byte[] {Byte_ascii.Bang}
, Dot_bry = new byte[] {Byte_ascii.Dot}
, Comma_bry = new byte[] {Byte_ascii.Comma}
@@ -106,7 +104,7 @@ public class Byte_ascii {
, Pipe_bry = new byte[] {Byte_ascii.Pipe}
, Underline_bry = new byte[] {Byte_ascii.Underline}
, Slash_bry = new byte[] {Byte_ascii.Slash}
- , Asterisk_bry = new byte[] {Byte_ascii.Asterisk}
+ , Asterisk_bry = new byte[] {Byte_ascii.Star}
, Dash_bry = new byte[] {Byte_ascii.Dash}
, Space_bry = new byte[] {Byte_ascii.Space}
;
diff --git a/100_core/src_110_primitive/gplx/Int_.java b/100_core/src_110_primitive/gplx/Int_.java
index a11fd2eed..3ef3631d1 100644
--- a/100_core/src_110_primitive/gplx/Int_.java
+++ b/100_core/src_110_primitive/gplx/Int_.java
@@ -225,7 +225,7 @@ public class Int_ implements GfoInvkAble {
cur_val += (b - Byte_ascii.Num_0) * cur_mult;
cur_mult *= 10;
break;
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Tab:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Tab:
break;
case Byte_ascii.Comma:
if (cur_idx < 0) return or;
diff --git a/100_core/src_110_primitive/gplx/Int_ary_.java b/100_core/src_110_primitive/gplx/Int_ary_.java
index 01ca75b4e..14ae94b63 100644
--- a/100_core/src_110_primitive/gplx/Int_ary_.java
+++ b/100_core/src_110_primitive/gplx/Int_ary_.java
@@ -67,7 +67,7 @@ public class Int_ary_ {
num_bgn = pos;
num_end = pos + 1; // num_end is always after pos; EX: "9": num_end = 1; "98,7": num_end=2
break;
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: // NOTE: parseNumList replaces ws with '', so "1 1" will become "11"
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: // NOTE: parseNumList replaces ws with '', so "1 1" will become "11"
break;
case Byte_ascii.Comma:
if (pos == raw_len -1) return or; // eos; EX: "1,"
diff --git a/100_core/src_120_basicDataType/gplx/TimeSpanAdp_.java b/100_core/src_120_basicDataType/gplx/TimeSpanAdp_.java
index 501e54e66..b5a2b0585 100644
--- a/100_core/src_120_basicDataType/gplx/TimeSpanAdp_.java
+++ b/100_core/src_120_basicDataType/gplx/TimeSpanAdp_.java
@@ -71,7 +71,7 @@ public class TimeSpanAdp_ {
if (i == 0 && unit_val > 0) // only if first char && unit_val > 0
sign = -1;
break;
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
if (fail_if_ws) return parse_null;
break;
default:
diff --git a/100_core/src_210_env/gplx/Op_sys_.java b/100_core/src_210_env/gplx/Op_sys_.java
index fa6bef43f..324d5222d 100644
--- a/100_core/src_210_env/gplx/Op_sys_.java
+++ b/100_core/src_210_env/gplx/Op_sys_.java
@@ -26,7 +26,7 @@ public class Op_sys_ {
case Byte_ascii.Colon:
case Byte_ascii.Pipe:
case Byte_ascii.Question:
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
case Byte_ascii.Quote: return true;
default: return false;
}
diff --git a/140_dbs/src/gplx/dbs/Db_conn.java b/140_dbs/src/gplx/dbs/Db_conn.java
index 45f0ed1f9..87ae3d134 100644
--- a/140_dbs/src/gplx/dbs/Db_conn.java
+++ b/140_dbs/src/gplx/dbs/Db_conn.java
@@ -44,7 +44,8 @@ public class Db_conn {
public void Ddl_create_idx(Gfo_usr_dlg usr_dlg, Db_meta_idx... idxs) {engine.Ddl_create_idx(usr_dlg, idxs);}
public void Ddl_append_fld(String tbl, Db_meta_fld fld) {engine.Ddl_append_fld(tbl, fld);}
public void Ddl_delete_tbl(String tbl) {engine.Ddl_delete_tbl(tbl);}
- public boolean Meta_tbl_exists(String tbl) {return engine.Meta_tbl_exists(tbl);}
+ public boolean Meta_tbl_exists(String tbl) {return engine.Meta_tbl_exists(tbl);}
+ public boolean Meta_fld_exists(String tbl, String fld) {return engine.Meta_fld_exists(tbl, fld);}
public void Rls_reg(RlsAble rls) {rls_list.Add(rls);}
public void Rls_conn() {
int len = rls_list.Count();
@@ -56,7 +57,7 @@ public class Db_conn {
Db_conn_pool.I.Del(engine.Conn_info());
}
public int Exec_sql(String sql) {return this.Exec_qry(Db_qry_sql.dml_(sql));}
- public Db_rdr Exec_sql_as_rdr2(String sql) {return this.Stmt_new(Db_qry_sql.dml_(sql)).Exec_select__rls_auto();}
+ public Db_rdr Exec_sql_as_rdr_v2(String sql) {return this.Stmt_new(Db_qry_sql.dml_(sql)).Exec_select__rls_auto();}
public int Exec_sql_plog_ntx(String msg, String sql) {return Exec_sql_plog(Bool_.N, msg, sql);}
public int Exec_sql_plog_txn(String msg, String sql) {return Exec_sql_plog(Bool_.Y, msg, sql);}
public int Exec_sql_plog(boolean txn, String msg, String sql) {
diff --git a/140_dbs/src/gplx/dbs/Db_meta_fld.java b/140_dbs/src/gplx/dbs/Db_meta_fld.java
index 020d4e88c..d8342d5b8 100644
--- a/140_dbs/src/gplx/dbs/Db_meta_fld.java
+++ b/140_dbs/src/gplx/dbs/Db_meta_fld.java
@@ -17,20 +17,31 @@ along with this program. If not, see .
*/
package gplx.dbs; import gplx.*;
public class Db_meta_fld {
- public Db_meta_fld(String name, int tid, int len, boolean nullable, boolean primary, boolean autonum, Object default_value) {
+ public Db_meta_fld(String name, int tid, int len) {
this.name = name; this.tid = tid; this.len = len;
- this.nullable = nullable; this.primary = primary; this.autonum = autonum; this.default_value = default_value;
+ this.nullable = false; this.primary = false; this.autonum = false; this.default_val = Default_value_null;
}
public int Tid() {return tid;} private final int tid;
public String Name() {return name;} private final String name;
public int Len() {return len;} private final int len;
- public boolean Nullable() {return nullable;} private final boolean nullable;
- public boolean Primary() {return primary;} private final boolean primary;
- public boolean Autonum() {return autonum;} private final boolean autonum;
- public Object Default_value() {return default_value;} private final Object default_value;
+ public boolean Nullable() {return nullable;} public Db_meta_fld Nullable_y_() {nullable = true; return this;} private boolean nullable;
+ public boolean Primary() {return primary;} public Db_meta_fld Primary_y_() {primary = true; return this;} private boolean primary;
+ public boolean Autonum() {return autonum;} public Db_meta_fld Autonum_y_() {autonum = true; return this;} private boolean autonum;
+ public Object Default() {return default_val;} public Db_meta_fld Default_(Object v) {default_val = v; return this;} private Object default_val;
+
public static final int Tid_bool = 0, Tid_byte = 1, Tid_short = 2, Tid_int = 3, Tid_long = 4, Tid_float = 5, Tid_double = 6, Tid_str = 7, Tid_text = 8, Tid_bry = 9, Tid_decimal = 10, Tid_date = 11;
public static final String Key_null = null;
public static final int Len_null = -1;
- public static final String[] Ary_empy = String_.Ary_empty;
public static final Object Default_value_null = null;
+ public static final String[] Ary_empty = String_.Ary_empty;
+ public static Db_meta_fld new_bool(String name) {return new Db_meta_fld(name, Tid_bool , Len_null);}
+ public static Db_meta_fld new_byte(String name) {return new Db_meta_fld(name, Tid_byte , Len_null);}
+ public static Db_meta_fld new_short(String name) {return new Db_meta_fld(name, Tid_short , Len_null);}
+ public static Db_meta_fld new_int(String name) {return new Db_meta_fld(name, Tid_int , Len_null);}
+ public static Db_meta_fld new_long(String name) {return new Db_meta_fld(name, Tid_long , Len_null);}
+ public static Db_meta_fld new_float(String name) {return new Db_meta_fld(name, Tid_float , Len_null);}
+ public static Db_meta_fld new_double(String name) {return new Db_meta_fld(name, Tid_double, Len_null);}
+ public static Db_meta_fld new_text(String name) {return new Db_meta_fld(name, Tid_text , Len_null);}
+ public static Db_meta_fld new_bry(String name) {return new Db_meta_fld(name, Tid_bry , Len_null);}
+ public static Db_meta_fld new_str(String name, int len) {return new Db_meta_fld(name, Tid_str , len);}
}
diff --git a/140_dbs/src/gplx/dbs/Db_meta_fld_list.java b/140_dbs/src/gplx/dbs/Db_meta_fld_list.java
index f8fd7806a..9f2db101f 100644
--- a/140_dbs/src/gplx/dbs/Db_meta_fld_list.java
+++ b/140_dbs/src/gplx/dbs/Db_meta_fld_list.java
@@ -20,7 +20,8 @@ public class Db_meta_fld_list {
private final Ordered_hash flds = Ordered_hash_.new_();
private final List_adp keys = List_adp_.new_();
public void Clear() {flds.Clear(); keys.Clear();}
- public Db_meta_fld Get_by(String name) {return (Db_meta_fld)flds.Get_by(name);}
+ public Db_meta_fld Get_by(String name) {return (Db_meta_fld)flds.Get_by(name);}
+ public Db_meta_fld Get_at(int idx) {return (Db_meta_fld)flds.Get_at(idx);}
public String[] To_str_ary() {if (str_ary == null) str_ary = (String[])keys.To_ary(String.class); return str_ary;} private String[] str_ary;
public Db_meta_fld[] To_fld_ary() {if (fld_ary == null) fld_ary = (Db_meta_fld[])flds.To_ary(Db_meta_fld.class); return fld_ary;} private Db_meta_fld[] fld_ary;
public String[] To_str_ary_wo_autonum() {
@@ -51,34 +52,29 @@ public class Db_meta_fld_list {
return rv.To_str_ary();
}
public boolean Has(String key) {return flds.Has(key);}
- public String Add_bool(String name) {return Add(name, Db_meta_fld.Tid_bool, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_byte(String name) {return Add(name, Db_meta_fld.Tid_byte, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_short(String name) {return Add(name, Db_meta_fld.Tid_short, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_int(String name) {return Add(name, Db_meta_fld.Tid_int, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_int_pkey(String name) {return Add(name, Db_meta_fld.Tid_int, Len_null, Bool_.N, Bool_.Y, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_int_pkey_autonum(String name) {return Add(name, Db_meta_fld.Tid_int, Len_null, Bool_.N, Bool_.Y, Bool_.Y, Db_meta_fld.Default_value_null);}
- public String Add_int_autonum(String name) {return Add(name, Db_meta_fld.Tid_int, Len_null, Bool_.N, Bool_.Y, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_int_dflt(String name, int dflt) {return Add(name, Db_meta_fld.Tid_int, Len_null, Bool_.N, Bool_.N, Bool_.N, dflt);}
- public String Add_long(String name) {return Add(name, Db_meta_fld.Tid_long, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_float(String name) {return Add(name, Db_meta_fld.Tid_float, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_double(String name) {return Add(name, Db_meta_fld.Tid_double, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_str(String name, int len) {return Add(name, Db_meta_fld.Tid_str, len, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_str_pkey(String name, int len) {return Add(name, Db_meta_fld.Tid_str, len, Bool_.N, Bool_.Y, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_str_null(String name, int len) {return Add(name, Db_meta_fld.Tid_str, len, Bool_.Y, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
+ public String Add_bool(String name) {return Add(Db_meta_fld.new_bool(name));}
+ public String Add_byte(String name) {return Add(Db_meta_fld.new_byte(name));}
+ public String Add_short(String name) {return Add(Db_meta_fld.new_short(name));}
+ public String Add_int(String name) {return Add(Db_meta_fld.new_int(name));}
+ public String Add_int_pkey(String name) {return Add(Db_meta_fld.new_int(name).Primary_y_());}
+ public String Add_int_pkey_autonum(String name) {return Add(Db_meta_fld.new_int(name).Primary_y_().Autonum_y_());}
+ public String Add_int_autonum(String name) {return Add(Db_meta_fld.new_int(name).Autonum_y_());}
+ public String Add_int_dflt(String name, int dflt) {return Add(Db_meta_fld.new_int(name).Default_(dflt));}
+ public String Add_long(String name) {return Add(Db_meta_fld.new_long(name));}
+ public String Add_float(String name) {return Add(Db_meta_fld.new_float(name));}
+ public String Add_double(String name) {return Add(Db_meta_fld.new_double(name));}
+ public String Add_text(String name) {return Add(Db_meta_fld.new_text(name));}
+ public String Add_bry(String name) {return Add(Db_meta_fld.new_bry(name));}
+ public String Add_str(String name, int len) {return Add(Db_meta_fld.new_str(name, len));}
+ public String Add_str_pkey(String name, int len) {return Add(Db_meta_fld.new_str(name, len).Primary_y_());}
+ public String Add_str_null(String name, int len) {return Add(Db_meta_fld.new_str(name, len).Nullable_y_());}
public String Add_str_dflt(String name, int len, String dflt)
- {return Add(name, Db_meta_fld.Tid_str, len, Bool_.N, Bool_.N, Bool_.N, dflt);}
- public String Add_text(String name) {return Add(name, Db_meta_fld.Tid_text, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add_bry(String name) {return Add(name, Db_meta_fld.Tid_bry, Len_null, Bool_.N, Bool_.N, Bool_.N, Db_meta_fld.Default_value_null);}
- public String Add(String name, int tid, int len, boolean nullable, boolean primary, boolean autoincrement, Object default_value) {
- Db_meta_fld fld = new Db_meta_fld(name, tid, len, nullable, primary, autoincrement, default_value);
- Add_itm(fld);
- return name;
- }
- public void Add_itm(Db_meta_fld fld) {
+ {return Add(Db_meta_fld.new_str(name, len).Default_(dflt));}
+ public String Add(Db_meta_fld fld) {
String name = fld.Name();
flds.Add(name, fld);
keys.Add(name);
+ return name;
}
- private static final int Len_null = Db_meta_fld.Len_null;
public static Db_meta_fld_list new_() {return new Db_meta_fld_list();}
}
diff --git a/140_dbs/src/gplx/dbs/Db_rdr.java b/140_dbs/src/gplx/dbs/Db_rdr.java
index 5c9f820b2..b4c25fe56 100644
--- a/140_dbs/src/gplx/dbs/Db_rdr.java
+++ b/140_dbs/src/gplx/dbs/Db_rdr.java
@@ -19,7 +19,7 @@ package gplx.dbs; import gplx.*;
public interface Db_rdr {
boolean Move_next();
byte[] Read_bry(String k);
- byte[] Read_bry_in_parts(String tbl, String fld, String crt_key, Object crt_val);
+ void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val);
byte[] Read_bry_by_str(String k);
String Read_str(String k);
byte Read_byte(String k);
diff --git a/140_dbs/src/gplx/dbs/Db_rdr_.java b/140_dbs/src/gplx/dbs/Db_rdr_.java
index c0d0b1735..8fabab9b3 100644
--- a/140_dbs/src/gplx/dbs/Db_rdr_.java
+++ b/140_dbs/src/gplx/dbs/Db_rdr_.java
@@ -23,7 +23,7 @@ class Db_rdr__empty implements Db_rdr {
public boolean Move_next() {return false;}
public byte[] Read_bry(String k) {return Bry_.Empty;}
public byte[] Read_bry_by_str(String k) {return Bry_.Empty;}
- public byte[] Read_bry_in_parts(String tbl, String fld, String crt_key, Object crt_val) {return Bry_.Empty;}
+ public void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val) {}
public byte Read_byte(String k) {return Byte_.Max_value_127;}
public String Read_str(String k) {return String_.Empty;}
public DateAdp Read_date_by_str(String k) {return DateAdp_.MinValue;}
diff --git a/140_dbs/src/gplx/dbs/Db_rdr__basic.java b/140_dbs/src/gplx/dbs/Db_rdr__basic.java
index 2bb70d738..fb5f6bd8f 100644
--- a/140_dbs/src/gplx/dbs/Db_rdr__basic.java
+++ b/140_dbs/src/gplx/dbs/Db_rdr__basic.java
@@ -28,7 +28,7 @@ public class Db_rdr__basic implements Db_rdr {
}
@gplx.Virtual public byte[] Read_bry(String k) {try {return (byte[])rdr.getObject(k);} catch (Exception e) {throw Err_.new_("read failed: k={0} type={1} err={2}", k, Bry_.Cls_val_name, Err_.Message_lang(e));}}
@gplx.Virtual public byte[] Read_bry_by_str(String k) {try {return Bry_.new_u8((String)rdr.getObject(k));} catch (Exception e) {throw Err_.new_("read failed: k={0} type={1} err={2}", k, String_.Cls_val_name, Err_.Message_lang(e));}}
- @gplx.Virtual public byte[] Read_bry_in_parts(String tbl, String fld, String crt_key, Object crt_val) {throw Err_.not_implemented_();}
+ @gplx.Virtual public void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val) {throw Err_.not_implemented_();}
@gplx.Virtual public String Read_str(String k) {try {return (String)rdr.getObject(k);} catch (Exception e) {throw Err_.new_("read failed: k={0} type={1} err={2}", k, String_.Cls_val_name, Err_.Message_lang(e));}}
@gplx.Virtual public DateAdp Read_date_by_str(String k) {return DateAdp_.parse_iso8561(Read_str(k));}
@gplx.Virtual public int Read_int(String k) {try {return Int_.cast_(rdr.getObject(k));} catch (Exception e) {throw Err_.new_("read failed: k={0} type={1} err={2}", k, Int_.Cls_val_name, Err_.Message_lang(e));}}
diff --git a/140_dbs/src/gplx/dbs/engines/mems/Db_rdr__mem.java b/140_dbs/src/gplx/dbs/engines/mems/Db_rdr__mem.java
index 7882dc710..549287e12 100644
--- a/140_dbs/src/gplx/dbs/engines/mems/Db_rdr__mem.java
+++ b/140_dbs/src/gplx/dbs/engines/mems/Db_rdr__mem.java
@@ -17,9 +17,9 @@ along with this program. If not, see .
*/
package gplx.dbs.engines.mems; import gplx.*; import gplx.dbs.*; import gplx.dbs.engines.*;
public class Db_rdr__mem implements Db_rdr {
- private final Mem_itm[] rows; private int row_idx = -1; private final int rows_len;
- private Mem_itm row;
- public Db_rdr__mem(String[] cols, Mem_itm[] rows) {
+ private final Mem_row[] rows; private int row_idx = -1; private final int rows_len;
+ private Mem_row row;
+ public Db_rdr__mem(String[] cols, Mem_row[] rows) {
this.rows = rows; this.rows_len = rows.length;
}
public boolean Move_next() {
@@ -31,7 +31,7 @@ public class Db_rdr__mem implements Db_rdr {
public byte[] Read_bry(String k) {return (byte[])row.Get_by(k);}
public String Read_str(String k) {return (String)row.Get_by(k);}
public byte[] Read_bry_by_str(String k) {return Bry_.new_u8_safe((String)row.Get_by(k));} // NOTE: null b/c db can have NULL
- @gplx.Virtual public byte[] Read_bry_in_parts(String tbl, String fld, String crt_key, Object crt_val) {throw Err_.not_implemented_();}
+ @gplx.Virtual public void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val) {throw Err_.not_implemented_();}
public DateAdp Read_date_by_str(String k) {return DateAdp_.parse_iso8561((String)row.Get_by(k));}
public byte Read_byte(String k) {return Byte_.cast_(row.Get_by(k));}
public int Read_int(String k) {return Int_.cast_(row.Get_by(k));}
diff --git a/140_dbs/src/gplx/dbs/engines/mems/Mem_qry_set.java b/140_dbs/src/gplx/dbs/engines/mems/Mem_qry_set.java
new file mode 100644
index 000000000..ed3180703
--- /dev/null
+++ b/140_dbs/src/gplx/dbs/engines/mems/Mem_qry_set.java
@@ -0,0 +1,24 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.dbs.engines.mems; import gplx.*; import gplx.dbs.*; import gplx.dbs.engines.*;
+public class Mem_qry_set {
+ private final List_adp rows = List_adp_.new_();
+ public int Len() {return rows.Count();}
+ public Mem_row Get_at(int i) {return (Mem_row)rows.Get_at(i);}
+ public void Add(Mem_row row) {rows.Add(row);}
+}
diff --git a/140_dbs/src/gplx/dbs/engines/mems/Mem_itm.java b/140_dbs/src/gplx/dbs/engines/mems/Mem_row.java
similarity index 84%
rename from 140_dbs/src/gplx/dbs/engines/mems/Mem_itm.java
rename to 140_dbs/src/gplx/dbs/engines/mems/Mem_row.java
index 4e30b3bc6..8b4b38b8e 100644
--- a/140_dbs/src/gplx/dbs/engines/mems/Mem_itm.java
+++ b/140_dbs/src/gplx/dbs/engines/mems/Mem_row.java
@@ -16,11 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.dbs.engines.mems; import gplx.*; import gplx.dbs.*; import gplx.dbs.engines.*;
-public class Mem_itm implements GfoInvkAble {
+public class Mem_row implements GfoInvkAble {
private final Ordered_hash hash = Ordered_hash_.new_();
public Object Get_by(String key) {return hash.Get_by(key);}
public Object Get_at(int i) {return hash.Get_at(i);}
- public void Set_by(String key, Object val) {hash.Add_if_dupe_use_nth(key, val);}
+ public void Set_by(String key, Object val) {hash.Add_if_dupe_use_nth(key, val);}
+ public void Add(String key, Object val) {hash.Add(key, val);}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
Object rv = Get_by(k);
if (rv == null) return GfoInvkAble_.Rv_unhandled;
diff --git a/140_dbs/src/gplx/dbs/engines/mems/Mem_tbl.java b/140_dbs/src/gplx/dbs/engines/mems/Mem_tbl.java
index 531a995ff..283b0d9b6 100644
--- a/140_dbs/src/gplx/dbs/engines/mems/Mem_tbl.java
+++ b/140_dbs/src/gplx/dbs/engines/mems/Mem_tbl.java
@@ -23,7 +23,7 @@ public class Mem_tbl {
public Mem_tbl(Db_meta_tbl meta) {this.meta = meta;}
public Db_meta_tbl Meta() {return meta;} private final Db_meta_tbl meta;
public int Insert(Db_stmt__mem stmt) {
- Mem_itm itm = new Mem_itm();
+ Mem_row itm = new Mem_row();
Db_meta_fld[] flds = meta.Flds();
int len = flds.length;
for (int i = 0; i < len; ++i) {
@@ -50,7 +50,7 @@ public class Mem_tbl {
int where_rows_len = where_rows.Count();
String[] update_cols = qry.Cols_for_update(); int update_cols_len = update_cols.length;
for (int i = 0; i < where_rows_len; ++i) {
- Mem_itm itm = (Mem_itm)where_rows.Get_at(i);
+ Mem_row itm = (Mem_row)where_rows.Get_at(i);
for (int j = 0; j < update_cols_len; ++j)
itm.Set_by(update_cols[j], stmt.Args_get_at(j));
}
@@ -62,7 +62,7 @@ public class Mem_tbl {
Select_rows_where(where_rows, stmt, qry.Where());
int where_rows_len = where_rows.Count();
for (int i = 0; i < where_rows_len; ++i) {
- Mem_itm itm = (Mem_itm)where_rows.Get_at(i);
+ Mem_row itm = (Mem_row)where_rows.Get_at(i);
rows.Del(itm);
}
return where_rows_len;
@@ -81,13 +81,13 @@ public class Mem_tbl {
}
where.Val_from_args(stmt.Crts());
Select_rows_where(where_rows, stmt, where);
- return new Db_rdr__mem(select, (Mem_itm[])where_rows.To_ary_and_clear(Mem_itm.class));
+ return new Db_rdr__mem(select, (Mem_row[])where_rows.To_ary_and_clear(Mem_row.class));
}
private void Select_rows_where(List_adp rv, Db_stmt__mem stmt, Criteria crt) {
rv.Clear();
int rows_len = rows.Count();
for (int i = 0; i < rows_len; ++i) {
- Mem_itm itm = (Mem_itm)rows.Get_at(i);
+ Mem_row itm = (Mem_row)rows.Get_at(i);
if (crt.Matches(itm))
rv.Add(itm);
}
diff --git a/140_dbs/src/gplx/dbs/metas/parsers/Sql_bry_rdr.java b/140_dbs/src/gplx/dbs/metas/parsers/Sql_bry_rdr.java
index f8d4ddaee..d18cb0997 100644
--- a/140_dbs/src/gplx/dbs/metas/parsers/Sql_bry_rdr.java
+++ b/140_dbs/src/gplx/dbs/metas/parsers/Sql_bry_rdr.java
@@ -39,8 +39,8 @@ public class Sql_bry_rdr extends Bry_rdr { public byte[] Read_sql_identifier()
byte[] end_bry = null;
switch (b_0) {
case Byte_ascii.Dash: bgn_1 = Byte_ascii.Dash; end_bry = Comm_end_line; break;
- case Byte_ascii.Slash: bgn_1 = Byte_ascii.Asterisk; end_bry = Comm_end_multi; break;
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space:
+ case Byte_ascii.Slash: bgn_1 = Byte_ascii.Star; end_bry = Comm_end_multi; break;
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space:
++pos;
return super.Skip_ws();
default:
@@ -53,5 +53,5 @@ public class Sql_bry_rdr extends Bry_rdr { public byte[] Read_sql_identifier()
pos = end_pos + end_bry.length;
return this.Skip_ws();
}
- private static final byte[] Comm_end_line = Byte_ascii.NewLine_bry, Comm_end_multi = Bry_.new_a7("*/");
+ private static final byte[] Comm_end_line = Byte_ascii.Nl_bry, Comm_end_multi = Bry_.new_a7("*/");
}
diff --git a/140_dbs/src/gplx/dbs/sqls/Db_sqlbldr__sqlite.java b/140_dbs/src/gplx/dbs/sqls/Db_sqlbldr__sqlite.java
index 4a94054a7..ce4e50dbe 100644
--- a/140_dbs/src/gplx/dbs/sqls/Db_sqlbldr__sqlite.java
+++ b/140_dbs/src/gplx/dbs/sqls/Db_sqlbldr__sqlite.java
@@ -65,14 +65,14 @@ public class Db_sqlbldr__sqlite implements Db_sqlbldr {
tmp_bfr.Add_str_a7(fld.Name()).Add_byte_space();
Tid_to_sql(tmp_bfr, fld.Tid(), fld.Len()); tmp_bfr.Add_byte_space();
tmp_bfr.Add_str_a7(fld.Nullable() ? "NULL " : "NOT NULL ");
- if (fld.Default_value() != Db_meta_fld.Default_value_null) {
+ if (fld.Default() != Db_meta_fld.Default_value_null) {
tmp_bfr.Add_str_a7("DEFAULT ");
boolean quote = Bool_.N;
switch (fld.Tid()) {
case Db_meta_fld.Tid_str: case Db_meta_fld.Tid_text: quote = Bool_.Y; break;
}
if (quote) tmp_bfr.Add_byte_apos();
- tmp_bfr.Add_str_u8(Object_.Xto_str_strict_or_null(fld.Default_value()));
+ tmp_bfr.Add_str_u8(Object_.Xto_str_strict_or_null(fld.Default()));
if (quote) tmp_bfr.Add_byte_apos();
tmp_bfr.Add_byte_space();
}
diff --git a/150_gfui/lib/swt.jar b/150_gfui/lib/swt.jar
index a7deaa8ba..cd1b685e7 100644
Binary files a/150_gfui/lib/swt.jar and b/150_gfui/lib/swt.jar differ
diff --git a/150_gfui/src_300_gxw/gplx/gfui/Gxw_html.java b/150_gfui/src_300_gxw/gplx/gfui/Gxw_html.java
index 61e4832ef..8588c5264 100644
--- a/150_gfui/src_300_gxw/gplx/gfui/Gxw_html.java
+++ b/150_gfui/src_300_gxw/gplx/gfui/Gxw_html.java
@@ -17,36 +17,14 @@ along with this program. If not, see .
*/
package gplx.gfui; import gplx.*;
public interface Gxw_html extends GxwElem {
- String Html_doc_html();
void Html_doc_html_load_by_mem(String html);
void Html_doc_html_load_by_url(String path, String html);
byte Html_doc_html_load_tid(); void Html_doc_html_load_tid_(byte v);
- String Html_doc_selected_get_text_or_href();
- String Html_doc_selected_get_href_or_text();
- String Html_doc_selected_get_src_or_empty();
- String Html_doc_selected_get_active_or_selection(); // gets selected anchor or highlighted text for opening a new page
- boolean Html_doc_find(String id, String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight);
- void Html_doc_body_focus();
- void Html_doc_selection_focus_toggle();
- String Html_elem_atr_get_str (String id, String atr_key);
- boolean Html_elem_atr_get_bool (String id, String atr_key);
- boolean Html_elem_atr_set (String id, String atr_key, String val);
- boolean Html_elem_atr_set_append(String id, String atr_key, String append);
- boolean Html_elem_delete(String id);
- boolean Html_elem_replace_html(String id, String html);
- boolean Html_elem_append_above(String id, String html);
- boolean Html_gallery_packed_exec();
- boolean Html_elem_focus(String id);
- boolean Html_elem_scroll_into_view(String id);
- boolean Html_elem_img_update(String id, String src, int w, int h);
- String Html_window_vpos();
- boolean Html_window_vpos_(String v);
- boolean Html_window_print_preview();
- String Html_active_atr_get_str(String atr_key, String or);
void Html_js_enabled_(boolean v);
- void Html_js_eval_proc(String name, String... args);
- String Html_js_eval_script(String script);
- void Html_js_cbks_add(String js_func_name, GfoInvkAble invk);
+ String Html_js_eval_proc_as_str (String name, Object... args);
+ boolean Html_js_eval_proc_as_bool (String name, Object... args);
+ String Html_js_eval_script (String script);
+ void Html_js_cbks_add (String js_func_name, GfoInvkAble invk);
void Html_invk_src_(GfoEvObj v);
void Html_dispose();
}
diff --git a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html.java b/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html.java
index 5937bec0f..a4294e1f5 100644
--- a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html.java
+++ b/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html.java
@@ -18,35 +18,13 @@ along with this program. If not, see .
package gplx.gfui; import gplx.*;
public class Gfui_html extends GfuiElemBase {
public void Under_html_(Gxw_html v) {under = v;} private Gxw_html under;
- public String Html_doc_html() {return under.Html_doc_html();}
public void Html_doc_html_load_by_mem(String html) {under.Html_doc_html_load_by_mem(html);}
public void Html_doc_html_load_by_url(String path, String html) {under.Html_doc_html_load_by_url(path, html);}
public byte Html_doc_html_load_tid() {return under.Html_doc_html_load_tid();}
public void Html_doc_html_load_tid_(byte v) {under.Html_doc_html_load_tid_(v);}
- public String Html_doc_selected_get_text_or_href() {return under.Html_doc_selected_get_text_or_href();}
- public String Html_doc_selected_get_href_or_text() {return under.Html_doc_selected_get_href_or_text();}
- public String Html_doc_selected_get_src_or_empty() {return under.Html_doc_selected_get_src_or_empty();}
- public String Html_doc_selected_get_active_or_selection() {return under.Html_doc_selected_get_active_or_selection();}
- public boolean Html_doc_find(String elem_id, String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight_matches) {return under.Html_doc_find(elem_id, find, dir_fwd, case_match, wrap_find, highlight_matches);}
- public void Html_doc_body_focus() {under.Html_doc_body_focus();}
- public void Html_doc_selection_focus_toggle() {under.Html_doc_selection_focus_toggle();}
- @gplx.Virtual public String Html_elem_atr_get_str(String elem_id, String atr_key) {return under.Html_elem_atr_get_str(elem_id, atr_key);}
- @gplx.Virtual public boolean Html_elem_atr_get_bool(String elem_id, String atr_key) {return under.Html_elem_atr_get_bool(elem_id, atr_key);}
- public boolean Html_elem_atr_set(String elem_id, String atr_key, String v) {return under.Html_elem_atr_set(elem_id, atr_key, v);}
- public boolean Html_elem_atr_set_append(String elem_id, String atr_key, String append) {return under.Html_elem_atr_set_append(elem_id, atr_key, append);}
- public boolean Html_elem_delete(String elem_id) {return under.Html_elem_delete(elem_id);}
- public boolean Html_elem_replace_html(String id, String html) {return under.Html_elem_replace_html(id, html);}
- public boolean Html_elem_append_above(String id, String html) {return under.Html_elem_append_above(id, html);}
- public boolean Html_gallery_packed_exec() {return under.Html_gallery_packed_exec();}
- public void Html_elem_focus(String elem_id) {under.Html_elem_focus(elem_id);}
- public boolean Html_elem_scroll_into_view(String elem_id) {return under.Html_elem_scroll_into_view(elem_id);}
- public boolean Html_elem_img_update(String elem_id, String elem_src, int elem_width, int elem_height) {return under.Html_elem_img_update(elem_id, elem_src, elem_width, elem_height);}
- public String Html_window_vpos() {return under.Html_window_vpos();}
- public void Html_window_vpos_(String v) {under.Html_window_vpos_(v);}
- public boolean Html_window_print_preview() {return under.Html_window_print_preview();}
- public String Html_active_atr_get_str(String atrKey, String or) {return under.Html_active_atr_get_str(atrKey, or);}
public void Html_js_enabled_(boolean v) {under.Html_js_enabled_(v);}
- public void Html_js_eval_proc(String name, String... args) {under.Html_js_eval_proc(name, args);}
+ @gplx.Virtual public String Html_js_eval_proc_as_str(String name, Object... args) {return under.Html_js_eval_proc_as_str(name, args);}
+ @gplx.Virtual public boolean Html_js_eval_proc_as_bool(String name, Object... args) {return under.Html_js_eval_proc_as_bool(name, args);}
public String Html_js_eval_script(String script) {return under.Html_js_eval_script(script);}
public void Html_js_cbks_add(String js_func_name, GfoInvkAble invk) {under.Html_js_cbks_add(js_func_name, invk);}
public void Html_invk_src_(GfoEvObj v) {under.Html_invk_src_(v);}
diff --git a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg.java b/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg.java
deleted file mode 100644
index 0bfb5d834..000000000
--- a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012 gnosygnu@gmail.com
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
-*/
-package gplx.gfui; import gplx.*;
-import gplx.core.primitives.*;
-public class Gfui_html_cfg implements GfoInvkAble {
- public String Doc_html() {return Exec_fmt(fmtr_doc_html);} private Bry_fmtr fmtr_doc_html = Bry_fmtr.new_();
- public String Doc_body_focus() {return Exec_fmt(fmtr_doc_body_focus);} private Bry_fmtr fmtr_doc_body_focus = Bry_fmtr.new_();
- public String Doc_selection_focus_toggle() {return Exec_fmt(fmtr_doc_selection_focus_toggle);} private Bry_fmtr fmtr_doc_selection_focus_toggle = Bry_fmtr.new_();
- public String Doc_selected_get_text_or_href() {return Exec_fmt(fmtr_doc_selected_get_text_or_href);} private Bry_fmtr fmtr_doc_selected_get_text_or_href = Bry_fmtr.keys_();
- public String Doc_selected_get_href_or_text() {return Exec_fmt(fmtr_doc_selected_get_href_or_text);} private Bry_fmtr fmtr_doc_selected_get_href_or_text = Bry_fmtr.keys_();
- public String Doc_selected_get_src_or_empty() {return Exec_fmt(fmtr_doc_selected_get_src_or_empty);} private Bry_fmtr fmtr_doc_selected_get_src_or_empty = Bry_fmtr.keys_();
- public String Doc_selected_get_active_or_selection() {return Exec_fmt(fmtr_doc_selected_get_active_or_selection);} private Bry_fmtr fmtr_doc_selected_get_active_or_selection = Bry_fmtr.keys_();
- public String Doc_find_html(String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight_matches) {
- return Exec_fmt(fmtr_doc_find_html, find, Bool_.Xto_str_lower(dir_fwd), Bool_.Xto_str_lower(case_match), Bool_.Xto_str_lower(wrap_find), Bool_.Xto_str_lower(highlight_matches));
- } private Bry_fmtr fmtr_doc_find_html = Bry_fmtr.keys_("find_text", "dir_fwd", "case_match", "wrap_find", "highlight_matches");
- public String Doc_find_edit(String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean search_text_is_diff, int prv_find_bgn) {
- return Exec_fmt(fmtr_doc_find_edit, find, Bool_.Xto_str_lower(dir_fwd), Bool_.Xto_str_lower(case_match), Bool_.Xto_str_lower(wrap_find), Bool_.Xto_str_lower(search_text_is_diff), Int_.Xto_str(prv_find_bgn));
- } private Bry_fmtr fmtr_doc_find_edit = Bry_fmtr.keys_("find_text", "dir_fwd", "case_match", "wrap_find", "find_text_is_diff", "prv_find_bgn");
- public String Elem_atr_get(String elem_id, String atr_key) {return Exec_fmt(fmtr_elem_atr_get, elem_id, atr_key);} private Bry_fmtr fmtr_elem_atr_get = Bry_fmtr.keys_("elem_id", "atr_key");
- public String Elem_atr_get_toString(String elem_id, String atr_key) {return Exec_fmt(fmtr_elem_atr_get_toString, elem_id, atr_key);} private Bry_fmtr fmtr_elem_atr_get_toString = Bry_fmtr.keys_("elem_id", "atr_key");
- public String Elem_atr_set(String elem_id, String atr_key, String atr_val) {return Exec_fmt(fmtr_elem_atr_set, elem_id, atr_key, atr_val);} private Bry_fmtr fmtr_elem_atr_set = Bry_fmtr.keys_("elem_id", "atr_key", "atr_val");
- public String Elem_atr_set_append(String elem_id, String atr_key, String atr_val) {
- return Exec_fmt(fmtr_elem_atr_set_append, elem_id, atr_key, atr_val);
- } private Bry_fmtr fmtr_elem_atr_set_append = Bry_fmtr.keys_("elem_id", "atr_key", "atr_val");
- public String Elem_delete(String elem_id) {return Exec_fmt(fmtr_elem_delete, elem_id);} private Bry_fmtr fmtr_elem_delete = Bry_fmtr.keys_("elem_id");
- public String Elem_replace_html(String id, String html) {return Exec_fmt(fmtr_elem_replace_html, id, Escape_quote(html));} private Bry_fmtr fmtr_elem_replace_html = Bry_fmtr.keys_("id", "html");
- public String Elem_append_above(String id, String html) {return Exec_fmt(fmtr_elem_append_above, id, Escape_quote(html));} private Bry_fmtr fmtr_elem_append_above = Bry_fmtr.keys_("id", "html");
- public String Gallery_packed_exec() {return Exec_fmt(fmtr_gallery_packed_exec);} private Bry_fmtr fmtr_gallery_packed_exec = Bry_fmtr.keys_();
- public String Elem_focus(String elem_id) {return Exec_fmt(fmtr_elem_focus, elem_id);} private Bry_fmtr fmtr_elem_focus = Bry_fmtr.keys_("elem_id");
- public String Elem_scroll_into_view(String elem_id) {return Exec_fmt(fmtr_elem_scroll_into_view, elem_id);} private Bry_fmtr fmtr_elem_scroll_into_view = Bry_fmtr.keys_("elem_id");
- public String Elem_img_update(String id, String src, int w, int h) {return Exec_fmt(fmtr_elem_img_update, id, src, Int_.Xto_str(w), Int_.Xto_str(h));} Bry_fmtr fmtr_elem_img_update = Bry_fmtr.keys_("elem_id", "elem_src", "elem_width", "elem_height");
- public String Window_vpos() {return Exec_fmt(fmtr_window_vpos);} private Bry_fmtr fmtr_window_vpos = Bry_fmtr.new_();
- public String Window_vpos_(String node_path, String scroll_top) {return Exec_fmt(fmtr_window_vpos_, node_path, scroll_top);} private Bry_fmtr fmtr_window_vpos_ = Bry_fmtr.keys_("node_path", "scroll_top");
- public String Window_print_preview() {return Exec_fmt(fmtr_window_print_preview);} private Bry_fmtr fmtr_window_print_preview = Bry_fmtr.keys_();
- public String Active_atr_get_str(String atr_key) {return Exec_fmt(fmtr_active_atr_get, atr_key);} private Bry_fmtr fmtr_active_atr_get = Bry_fmtr.keys_("atr_key");
- public Bry_fmtr Js_scripts_get(String name) {return (Bry_fmtr)js_scripts.Get_by(name);}
- private void Js_scripts_add(String name, String text) {
- Bry_fmtr fmtr = Bry_fmtr.new_(text);
- js_scripts.Add_if_dupe_use_nth(name, fmtr);
- } private Ordered_hash js_scripts = Ordered_hash_.new_();
- private String Exec_fmt(Bry_fmtr fmtr, String... vals) {
- if (debug_file != null) GfsCore._.ExecFile(debug_file);
- return fmtr.Bld_str_many(vals);
- } private Io_url debug_file = null;
- private static String Escape_quote(String v) {
- String rv = v;
- rv = String_.Replace(rv, "'", "\\'");
- rv = String_.Replace(rv, "\"", "\\\"");
- rv = String_.Replace(rv, "\n", "\\n");
- return rv;
- }
- public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
- if (ctx.Match(k, Invk_doc_html_)) fmtr_doc_html.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_body_focus_)) fmtr_doc_body_focus.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_selection_focus_toggle_)) fmtr_doc_selection_focus_toggle.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_selected_get_text_or_href_)) fmtr_doc_selected_get_text_or_href.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_selected_get_href_or_text_)) fmtr_doc_selected_get_href_or_text.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_selected_get_src_or_empty_)) fmtr_doc_selected_get_src_or_empty.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_selected_get_active_or_selection_)) fmtr_doc_selected_get_active_or_selection.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_find_html_)) fmtr_doc_find_html.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_find_edit_)) fmtr_doc_find_edit.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_atr_get_)) fmtr_elem_atr_get.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_atr_get_toString_)) fmtr_elem_atr_get_toString.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_atr_set_)) fmtr_elem_atr_set.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_atr_set_append_)) fmtr_elem_atr_set_append.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_delete_)) fmtr_elem_delete.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_replace_html_)) fmtr_elem_replace_html.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_append_above_)) fmtr_elem_append_above.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_gallery_packed_exec_)) fmtr_gallery_packed_exec.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_focus_)) fmtr_elem_focus.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_scroll_into_view_)) fmtr_elem_scroll_into_view.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_img_update_)) fmtr_elem_img_update.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_path_get_)) fmtr_window_vpos.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_win_print_preview_)) fmtr_window_print_preview.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_elem_path_set_)) fmtr_window_vpos_.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_doc_active_atr_get_)) fmtr_active_atr_get.Fmt_(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_js_scripts_add)) Js_scripts_add(m.ReadStr("name"), m.ReadStr("text"));
- else if (ctx.Match(k, Invk_debug_file_)) debug_file = m.ReadIoUrl("v");
- else return GfoInvkAble_.Rv_unhandled;
- return this;
- }
- public static void Html_window_vpos_parse(String v, String_obj_ref scroll_top, String_obj_ref node_path) {
- int pipe_pos = String_.FindFwd(v, "|"); if (pipe_pos == String_.Find_none) return; // if elem_get_path returns invalid value, don't fail; DATE:2014-04-05
- scroll_top.Val_(String_.Mid(v, 0, pipe_pos));
- String node_path_val = String_.Mid(v, pipe_pos + 1, String_.Len(v));
- node_path_val = "'" + String_.Replace(node_path_val, ",", "','") + "'";
- node_path.Val_(node_path_val);
- }
- public static final String Invk_debug_file_ = "debug_file_"
- , Invk_doc_html_ = "doc_html_", Invk_doc_body_focus_ = "doc_body_focus_", Invk_doc_selection_focus_toggle_ = "doc_selection_focus_toggle_"
- , Invk_doc_active_atr_get_ = "doc_active_atr_get_", Invk_doc_find_html_ = "doc_find_html_", Invk_doc_find_edit_ = "doc_find_edit_"
- , Invk_doc_selected_get_text_or_href_ = "doc_selected_get_text_or_href_", Invk_doc_selected_get_href_or_text_ = "doc_selected_get_href_or_text_", Invk_doc_selected_get_src_or_empty_ = "doc_selected_get_src_or_empty_", Invk_doc_selected_get_active_or_selection_ = "doc_selected_get_active_or_selection_"
- , Invk_win_print_preview_ = "win_print_preview_"
- , Invk_elem_atr_get_ = "elem_atr_get_", Invk_elem_atr_get_toString_ = "elem_atr_get_toString_", Invk_elem_atr_set_ = "elem_atr_set_", Invk_elem_atr_set_append_ = "elem_atr_set_append_"
- , Invk_elem_path_get_ = "elem_path_get_", Invk_elem_path_set_ = "elem_path_set_"
- , Invk_elem_focus_ = "elem_focus_", Invk_elem_scroll_into_view_ = "elem_scroll_into_view_"
- , Invk_elem_img_update_ = "elem_img_update_", Invk_elem_delete_ = "elem_delete_", Invk_elem_replace_html_ = "elem_replace_html_", Invk_elem_append_above_ = "elem_append_above_", Invk_gallery_packed_exec_ = "gallery_packed_exec_"
- , Invk_js_scripts_add = "js_scripts_add"
- , Invk_javascript_enabled_ = "javascript_enabled_"
- ;
-}
diff --git a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg_tst.java b/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg_tst.java
deleted file mode 100644
index 8dbdf9d2a..000000000
--- a/150_gfui/src_420_box_basic/gplx/gfui/Gfui_html_cfg_tst.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012 gnosygnu@gmail.com
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
-*/
-package gplx.gfui; import gplx.*;
-import org.junit.*; import gplx.core.primitives.*;
-public class Gfui_html_cfg_tst {
- private Gfui_html_cfg_fxt fxt = new Gfui_html_cfg_fxt();
- @Before public void init() {fxt.Reset();}
- @Test public void Html_window_vpos_parse() {
- fxt.Test_Html_window_vpos_parse("0|0,1,2", "0", "'0','1','2'");
- fxt.Test_Html_window_vpos_parse("org.eclipse.swt.SWTException: Permission denied for to get property Selection.rangeCount", null, null); // check that invalid path doesn't fail; DATE:2014-04-05
- }
-}
-class Gfui_html_cfg_fxt {
- private String_obj_ref scroll_top = String_obj_ref.null_(), node_path = String_obj_ref.null_();
- public void Reset() {}
- public void Test_Html_window_vpos_parse(String raw, String expd_scroll_top, String expd_node_path) {
- scroll_top.Val_null_(); node_path.Val_null_();
- Gfui_html_cfg.Html_window_vpos_parse(raw, scroll_top, node_path);
- Tfds.Eq(expd_scroll_top, scroll_top.Val(), expd_scroll_top);
- Tfds.Eq(expd_node_path, node_path.Val(), expd_node_path);
- }
-}
diff --git a/150_gfui/src_700_env/gplx/gfui/Mem_html.java b/150_gfui/src_700_env/gplx/gfui/Mem_html.java
index 124d653c4..e24c74471 100644
--- a/150_gfui/src_700_env/gplx/gfui/Mem_html.java
+++ b/150_gfui/src_700_env/gplx/gfui/Mem_html.java
@@ -16,39 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.gfui; import gplx.*;
-class Mem_html extends GxwTextMemo_lang implements Gxw_html { public String Html_doc_html() {
- return String_.Replace(this.TextVal(), "\r\n", "\n");
- }
- public String Html_doc_selected_get_sub_atr(String tag, String sub_tag, int sub_idx, String sub_atr) {return "";}
- public String Html_doc_selected_get(String host, String page) {return "";}
- public String Html_doc_selected_get_text_or_href() {return "";}
- public String Html_doc_selected_get_href_or_text() {return "";}
- public String Html_doc_selected_get_src_or_empty() {return "";}
- public String Html_doc_selected_get_active_or_selection() {return "";}
- public boolean Html_window_print_preview() {return false;}
- public void Html_invk_src_(GfoEvObj v) {}
- public String Html_elem_atr_get_str(String elem_id, String atr_key) {
- if (String_.Eq(atr_key, Gfui_html.Atr_value)) return String_.Replace(this.TextVal(), "\r\n", "\n");
- else throw Err_.unhandled(atr_key);
- }
- public Object Html_elem_atr_get_obj(String elem_id, String atr_key) {
- if (String_.Eq(atr_key, Gfui_html.Atr_value)) return String_.Replace(this.TextVal(), "\r\n", "\n");
- else throw Err_.unhandled(atr_key);
- }
- public boolean Html_elem_atr_get_bool(String elem_id, String atr_key) {
- if (String_.Eq(atr_key, Gfui_html.Atr_value)) return Bool_.parse_(String_.Replace(this.TextVal(), "\r\n", "\n"));
- else throw Err_.unhandled(atr_key);
- }
- public boolean Html_elem_atr_set(String elem_id, String atr_key, String v) {
- if (String_.Eq(atr_key, Gfui_html.Atr_value)) this.TextVal_set(v);
- else throw Err_.unhandled(atr_key);
- return true;
- }
- public boolean Html_elem_atr_set_append(String elem_id, String atr_key, String append) {
- if (String_.Eq(atr_key, Gfui_html.Atr_value)) this.TextVal_set(this.TextVal() + append);
- else throw Err_.unhandled(atr_key);
- return true;
- }
+class Mem_html extends GxwTextMemo_lang implements Gxw_html { public void Html_invk_src_(GfoEvObj v) {}
public void Html_doc_html_load_by_mem(String s) {
// this.Core().ForeColor_set(plainText ? ColorAdp_.Black : ColorAdp_.Gray);
s = String_.Replace(s, "\r", "");
@@ -62,22 +30,6 @@ class Mem_html extends GxwTextMemo_lang implements Gxw_html { public String Htm
}
public byte Html_doc_html_load_tid() {return html_doc_html_load_tid;} private byte html_doc_html_load_tid;
public void Html_doc_html_load_tid_(byte v) {html_doc_html_load_tid = v;}
- public String Html_active_atr_get_str(String atrKey, String or) { // NOTE: fuzzy way of finding current href; EX: b
- String txt = this.TextVal();
- int pos = this.SelBgn();
- String rv = ExtractAtr(atrKey, txt, pos);
- return rv == null ? or : rv;
- }
- public void Html_doc_body_focus() {}
- public void Html_doc_selection_focus_toggle() {}
- public String Html_window_vpos() {return "";}
- public boolean Html_window_vpos_(String v) {return true;}
- public boolean Html_elem_focus(String v) {return true;}
- public boolean Html_elem_img_update(String elem_id, String elem_src, int elem_width, int elem_height) {return true;}
- public boolean Html_elem_delete(String elem_id) {return true;}
- public boolean Html_elem_replace_html(String id, String html) {return true;}
- public boolean Html_elem_append_above(String id, String html) {return true;}
- public boolean Html_gallery_packed_exec() {return true;}
public String Html_js_eval_script(String script) {return "";}
String ExtractAtr(String key, String txt, int pos) {
int key_pos = String_.FindBwd(txt, key, pos); if (key_pos == String_.Find_none) return null;
@@ -86,45 +38,11 @@ class Mem_html extends GxwTextMemo_lang implements Gxw_html { public String Htm
if (!Int_.Between(pos, q0, q1)) return null; // current pos is not between nearest quotes
return String_.Mid(txt, q0 + 1, q1);
}
- public boolean Html_doc_find(String elem_id, String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight_matches) {
-// String txt = this.TextVal();
-// int pos = this.SelBgn();
-// int bgn = String_.FindFwd(txt, find, pos); if (bgn == String_.Find_none) return false;
-// if (bgn == pos) {
-// bgn = String_.FindFwd(txt, find, pos + 1);
-// if (bgn == String_.Find_none) {
-// bgn = String_.FindFwd(txt, find, 0);
-// if (bgn == String_.Find_none) return false;
-// }
-// }
-// this.SelBgn_set(bgn);
-// this.SelLen_set(String_.Len(find));
-// this.ScrollTillSelectionStartIsFirstLine();
- txtFindMgr.Text_(this.TextVal());
- int cur = this.SelBgn();
- int[] ary = txtFindMgr.FindByUi(find, this.SelBgn(), this.SelLen(), false);
- if (ary[0] != cur) {
- this.SelBgn_set(ary[0]);
- this.SelLen_set(ary[1]);
- this.ScrollTillCaretIsVisible();
- }
- else {
- ary = txtFindMgr.FindByUi(find, this.SelBgn() + 1, 0, false);
- if (ary[0] != 0) {
- this.SelBgn_set(ary[0]);
- this.SelLen_set(ary[1]);
- this.ScrollTillCaretIsVisible();
-// this.ScrollTillSelectionStartIsFirstLine();
- }
- }
- return true;
- }
- public boolean Html_elem_scroll_into_view(String id) {return false;}
public void Html_js_enabled_(boolean v) {}
- public void Html_js_eval_proc(String proc, String... args) {}
+ public String Html_js_eval_proc_as_str(String proc, Object... args) {return "not implemented by mem_html";}
+ public boolean Html_js_eval_proc_as_bool(String proc, Object... args) {return false;}
public void Html_js_cbks_add(String js_func_name, GfoInvkAble invk) {}
public void Html_dispose() {}
- private TxtFindMgr txtFindMgr = new TxtFindMgr();
public Mem_html() {
this.ctor_MsTextBoxMultiline_();
}
diff --git a/150_gfui/src_700_env/gplx/gfui/Swt_kit.java b/150_gfui/src_700_env/gplx/gfui/Swt_kit.java
index f2c4b13c2..e2e2f0b59 100644
--- a/150_gfui/src_700_env/gplx/gfui/Swt_kit.java
+++ b/150_gfui/src_700_env/gplx/gfui/Swt_kit.java
@@ -64,7 +64,6 @@ public class Swt_kit implements Gfui_kit {
public void Kit_sync_cmd_add(Swt_gui_cmd cmd) {synchronized (thread_lock) {sync_cmd_list.Add(cmd);}}
public void Kit_sync_cmd_del(Swt_gui_cmd cmd) {synchronized (thread_lock) {sync_cmd_list.Del(cmd);}}
public GfoInvkAbleCmd Kit_term_cbk() {return term_cbk;} public void Kit_term_cbk_(GfoInvkAbleCmd v) {this.term_cbk = v;} private GfoInvkAbleCmd term_cbk = GfoInvkAbleCmd.Null;
- public Gfui_html_cfg Html_cfg() {return html_cfg;} private final Gfui_html_cfg html_cfg = new Gfui_html_cfg();
public void Kit_init(Gfo_usr_dlg gui_wtr) {
this.gui_wtr = gui_wtr;
this.msg_wkr_stop = new Swt_msg_wkr_stop(this, gui_wtr);
@@ -231,12 +230,11 @@ public class Swt_kit implements Gfui_kit {
Cfg_set(type, Swt_kit.Cfg_Html_BrowserType, Cfg_Html_BrowserType_parse(val));
}
}
- else if (String_.Eq(k, Invk_HtmlBox)) {return html_cfg;}
else if (String_.Eq(k, Invk_ask_file)) return this.New_dlg_file(Gfui_kit_.File_dlg_type_open, m.Args_getAt(0).Val_to_str_or_empty()).Ask();
else if (String_.Eq(k, Invk_shell_close)) shell.close();
return this;
}
- public static final String Invk_Cfg_add = "Cfg_add", Invk_HtmlBox = "HtmlBox", Invk_ask_file = "ask_file"; // private or public?
+ public static final String Invk_Cfg_add = "Cfg_add", Invk_ask_file = "ask_file"; // private or public?
public static final String Invk_shell_close = "shell_close"; // public
public static final Swt_kit _ = new Swt_kit(); private Swt_kit() {} // singleton b/c of following line "In particular, some platforms which SWT supports will not allow more than one active display" (http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/Display.html)
public static final String Cfg_Html_BrowserType = "BrowserType";
diff --git a/150_gfui/xtn/gplx/gfui/Swt_core_lnrs.java b/150_gfui/xtn/gplx/gfui/Swt_core_lnrs.java
index af424b931..0b66ef3e4 100644
--- a/150_gfui/xtn/gplx/gfui/Swt_core_lnrs.java
+++ b/150_gfui/xtn/gplx/gfui/Swt_core_lnrs.java
@@ -74,7 +74,7 @@ class Swt_lnr_key implements KeyListener {
IptEvtDataKey XtoKeyData(KeyEvent ev) {
int val = ev.keyCode;
switch (val) {
- case Byte_ascii.CarriageReturn: val = 10; break; // enter key is 13 whereas .net/swing is 10
+ case Byte_ascii.Cr: val = 10; break; // enter key is 13 whereas .net/swing is 10
case Byte_ascii.Ltr_a: case Byte_ascii.Ltr_b: case Byte_ascii.Ltr_c: case Byte_ascii.Ltr_d: case Byte_ascii.Ltr_e:
case Byte_ascii.Ltr_f: case Byte_ascii.Ltr_g: case Byte_ascii.Ltr_h: case Byte_ascii.Ltr_i: case Byte_ascii.Ltr_j:
case Byte_ascii.Ltr_k: case Byte_ascii.Ltr_l: case Byte_ascii.Ltr_m: case Byte_ascii.Ltr_n: case Byte_ascii.Ltr_o:
diff --git a/150_gfui/xtn/gplx/gfui/Swt_html.java b/150_gfui/xtn/gplx/gfui/Swt_html.java
index 2073f68dc..b7e35a69d 100644
--- a/150_gfui/xtn/gplx/gfui/Swt_html.java
+++ b/150_gfui/xtn/gplx/gfui/Swt_html.java
@@ -28,7 +28,6 @@ import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import java.security.acl.Owner;
-import gplx.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.events.*;
@@ -58,7 +57,6 @@ class Swt_html implements Gxw_html, Swt_control, FocusListener {
@Override public Composite Under_composite() {return null;}
@Override public Control Under_menu_control() {return browser;}
public int Browser_tid() {return browser_tid;} private final int browser_tid;
- public String Html_doc_html() {return Eval_script_as_str(kit.Html_cfg().Doc_html());}
public void Html_doc_html_load_by_mem(String html) {
html_doc_html_load_tid = Gxw_html_load_tid_.Tid_mem;
browser.setText(html); // DBG: Io_mgr.I.SaveFilStr(Io_url_.new_fil_("C:\\temp.txt"), s)
@@ -70,63 +68,41 @@ class Swt_html implements Gxw_html, Swt_control, FocusListener {
}
public byte Html_doc_html_load_tid() {return html_doc_html_load_tid;} private byte html_doc_html_load_tid;
public void Html_doc_html_load_tid_(byte v) {html_doc_html_load_tid = v;}
- public String Html_doc_selected_get_text_or_href() {return Eval_script_as_str(kit.Html_cfg().Doc_selected_get_text_or_href());}
- public String Html_doc_selected_get_href_or_text() {return Eval_script_as_str(kit.Html_cfg().Doc_selected_get_href_or_text());}
- public String Html_doc_selected_get_src_or_empty() {return Eval_script_as_str(kit.Html_cfg().Doc_selected_get_src_or_empty());}
- public String Html_doc_selected_get_active_or_selection() {return Eval_script_as_str(kit.Html_cfg().Doc_selected_get_active_or_selection());}
- public void Html_doc_body_focus() {Eval_script_as_exec(kit.Html_cfg().Doc_body_focus());}
- public void Html_doc_selection_focus_toggle() {Eval_script_as_exec(kit.Html_cfg().Doc_selection_focus_toggle());}
- public String Html_elem_atr_get_str(String elem_id, String atr_key) {return Eval_script_as_str(kit.Html_cfg().Elem_atr_get(elem_id, atr_key));}
- public boolean Html_elem_atr_get_bool(String elem_id, String atr_key) {return Bool_.parse_((String)Eval_script(kit.Html_cfg().Elem_atr_get_toString(elem_id, atr_key)));}
- public Object Html_elem_atr_get_obj(String elem_id, String atr_key) {return Eval_script(kit.Html_cfg().Elem_atr_get(elem_id, atr_key));}
- public boolean Html_elem_atr_set(String elem_id, String atr_key, String atr_val){return Eval_script_as_exec(kit.Html_cfg().Elem_atr_set(elem_id, atr_key, Escape_quotes(atr_val)));}
- public boolean Html_elem_atr_set_append(String elem_id, String atr_key, String atr_val)
- {return Eval_script_as_exec(kit.Html_cfg().Elem_atr_set_append(elem_id, atr_key, Escape_quotes(atr_val)));}
- public boolean Html_elem_delete(String elem_id) {return Eval_script_as_exec(kit.Html_cfg().Elem_delete(elem_id));}
- public boolean Html_elem_replace_html(String id, String html) {return Eval_script_as_exec(kit.Html_cfg().Elem_replace_html(id, html));}
- public boolean Html_elem_append_above(String id, String html) {return Eval_script_as_exec(kit.Html_cfg().Elem_append_above(id, html));}
- public boolean Html_gallery_packed_exec() {return Eval_script_as_exec(kit.Html_cfg().Gallery_packed_exec());}
- public boolean Html_elem_focus(String elem_id) {return Eval_script_as_exec(kit.Html_cfg().Elem_focus(elem_id));}
- public boolean Html_elem_scroll_into_view(String id) {return Eval_script_as_bool(kit.Html_cfg().Elem_scroll_into_view(Escape_quotes(id)));}
- public String Html_window_vpos() {return Eval_script_as_str(kit.Html_cfg().Window_vpos());}
- public boolean Html_window_print_preview() {return Eval_script_as_bool(kit.Html_cfg().Window_print_preview());}
public void Html_js_enabled_(boolean v) {browser.setJavascriptEnabled(v);}
public void Html_js_cbks_add(String func_name, GfoInvkAble invk) {new Swt_html_func(browser, func_name, invk);}
public String Html_js_eval_script(String script) {return Eval_script_as_str(script);}
- public boolean Html_elem_img_update(String elem_id, String elem_src, int elem_width, int elem_height) {
- elem_src = Escape_quotes(elem_src);
- int count = 0;
- while (count < 5) {
- boolean rv = Eval_script_as_bool(kit.Html_cfg().Elem_img_update(elem_id, elem_src, elem_width, elem_height));
- if (rv) return rv;
- Thread_adp_.Sleep(100);
- count++;
+ public boolean Html_js_eval_proc_as_bool(String proc, Object... args) {return Bool_.cast_(Html_js_eval_proc_as_obj(proc, args));}
+ public String Html_js_eval_proc_as_str(String proc, Object... args) {return Object_.Xto_str_strict_or_null(Html_js_eval_proc_as_obj(proc, args));}
+ private Object Html_js_eval_proc_as_obj(String proc, Object... args) {
+ Bry_bfr bfr = Bry_bfr.new_();
+ bfr.Add_str_a7("return ").Add_str_u8(proc).Add_byte(Byte_ascii.Paren_bgn);
+ int args_len = args.length;
+ for (int i = 0; i < args_len; ++i) {
+ Object arg = args[i];
+ if (i != 0) bfr.Add_byte(Byte_ascii.Comma);
+ boolean quote_val = true;
+ if ( ClassAdp_.Eq_typeSafe(arg, Bool_.Cls_ref_type)
+ || ClassAdp_.Eq_typeSafe(arg, Int_.Cls_ref_type)
+ || ClassAdp_.Eq_typeSafe(arg, Long_.Cls_ref_type)
+ ) {
+ quote_val = false;
+ }
+ if (quote_val) bfr.Add_byte(Byte_ascii.Apos);
+ if (quote_val)
+ bfr.Add_str_u8(Escape_quote(Object_.Xto_str_strict_or_null_mark(arg)));
+ else
+ bfr.Add_obj_strict(arg);
+ if (quote_val) bfr.Add_byte(Byte_ascii.Apos);
}
- return false;
+ bfr.Add_byte(Byte_ascii.Paren_end).Add_byte(Byte_ascii.Semic);
+ return Eval_script(bfr.Xto_str_and_clear());
}
- public String Html_active_atr_get_str(String atr_key, String or) {
- Object rv_obj = Eval_script(kit.Html_cfg().Active_atr_get_str(atr_key));
- String rv = (String)rv_obj;
- return rv == null || !eval_rslt.Result_pass() ? or : rv;
- }
- public void Html_js_eval_proc(String proc, String... args) {
- Bry_fmtr fmtr = kit.Html_cfg().Js_scripts_get(proc);
- String script = fmtr.Bld_str_many(args);
- Eval_script(script);
- }
- public boolean Html_window_vpos_(String v) {
- Gfui_html_cfg.Html_window_vpos_parse(v, scroll_top, node_path);
- return Eval_script_as_exec(kit.Html_cfg().Window_vpos_(node_path.Val(), scroll_top.Val()));
- } private String_obj_ref scroll_top = String_obj_ref.null_(), node_path = String_obj_ref.null_();
- public boolean Html_doc_find(String elem_id, String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight_matches) {
- // if (String_.Eq(find, String_.Empty)) return false;
- find = String_.Replace(find, "\\", "\\\\"); // escape \ -> \\
- find = String_.Replace(find, "'", "\\'"); // escape ' -> \'; NOTE: \\' instead of \'
- String script = String_.Eq(elem_id, Gfui_html.Elem_id_body)
- ? kit.Html_cfg().Doc_find_html(find, dir_fwd, case_match, wrap_find, highlight_matches)
- : kit.Html_cfg().Doc_find_edit(find, dir_fwd, case_match, wrap_find, false, -1);
- Eval_script(script);
- return true;
+ private static String Escape_quote(String v) {
+ String rv = v;
+ rv = String_.Replace(rv, "'", "\\'");
+ rv = String_.Replace(rv, "\"", "\\\"");
+ rv = String_.Replace(rv, "\n", "\\n");
+ return rv;
}
public void Html_invk_src_(GfoEvObj invk) {lnr_location.Host_set(invk); lnr_status.Host_set(invk);}
public void Html_dispose() {
@@ -136,18 +112,12 @@ class Swt_html implements Gxw_html, Swt_control, FocusListener {
}
private GfuiElem delete_owner, delete_cur;
public void Delete_elems_(GfuiElem delete_owner, GfuiElem delete_cur) {this.delete_owner = delete_owner; this.delete_cur = delete_cur;} // HACK: set owner / cur so delete can work;
- private String Escape_quotes(String v) {return String_.Replace(String_.Replace(v, "'", "\\'"), "\"", "\\\"");}
@Override public GxwCore_base Core() {return core;} private GxwCore_base core;
@Override public GxwCbkHost Host() {return host;} @Override public void Host_set(GxwCbkHost host) {this.host = host;} GxwCbkHost host;
@Override public String TextVal() {return browser.getText();}
@Override public void TextVal_set(String v) {browser.setText(v);}
@Override public void EnableDoubleBuffering() {}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return GfoInvkAble_.Rv_unhandled;}
- private boolean Eval_script_as_bool(String script) {
- Object result_obj = Eval_script(script);
- return eval_rslt.Result_pass() && Bool_.cast_or_(result_obj, false);
- }
- private boolean Eval_script_as_exec(String script) {Eval_script(script); return eval_rslt.Result_pass();}
private String Eval_script_as_str(String script) {return (String)Eval_script(script);}
public Object Eval_script(String script) {
eval_rslt.Clear();
diff --git a/400_xowa/src/gplx/core/brys/Bry_bldr.java b/400_xowa/src/gplx/core/brys/Bry_bldr.java
index 87b72e951..39cc7ba6c 100644
--- a/400_xowa/src/gplx/core/brys/Bry_bldr.java
+++ b/400_xowa/src/gplx/core/brys/Bry_bldr.java
@@ -20,7 +20,7 @@ public class Bry_bldr {
public byte[] Val() {return val;} private byte[] val;
public Bry_bldr New_256() {return New(256);}
public Bry_bldr New(int len) {val = new byte[len]; return this;}
- public Bry_bldr Set_rng_ws(byte v) {return Set_many(v, Byte_ascii.Space, Byte_ascii.Tab, Byte_ascii.NewLine, Byte_ascii.CarriageReturn);}
+ public Bry_bldr Set_rng_ws(byte v) {return Set_many(v, Byte_ascii.Space, Byte_ascii.Tab, Byte_ascii.Nl, Byte_ascii.Cr);}
public Bry_bldr Set_rng_xml_identifier(byte v) {return Set_rng_alpha_lc(v).Set_rng_alpha_uc(v).Set_rng_num(v).Set_many(v, Byte_ascii.Underline, Byte_ascii.Dash);}
public Bry_bldr Set_rng_alpha(byte v) {return Set_rng_alpha_lc(v).Set_rng_alpha_uc(v);}
public Bry_bldr Set_rng_alpha_lc(byte v) {return Set_rng(v, Byte_ascii.Ltr_a, Byte_ascii.Ltr_z);}
diff --git a/400_xowa/src/gplx/core/flds/Gfo_fld_base.java b/400_xowa/src/gplx/core/flds/Gfo_fld_base.java
index dde13f9e1..02a209651 100644
--- a/400_xowa/src/gplx/core/flds/Gfo_fld_base.java
+++ b/400_xowa/src/gplx/core/flds/Gfo_fld_base.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.core.flds; import gplx.*; import gplx.core.*;
public class Gfo_fld_base {
- public byte Row_dlm() {return row_dlm;} public Gfo_fld_base Row_dlm_(byte v) {row_dlm = v; return this;} protected byte row_dlm = Byte_ascii.NewLine;
+ public byte Row_dlm() {return row_dlm;} public Gfo_fld_base Row_dlm_(byte v) {row_dlm = v; return this;} protected byte row_dlm = Byte_ascii.Nl;
public byte Fld_dlm() {return fld_dlm;} public Gfo_fld_base Fld_dlm_(byte v) {fld_dlm = v; return this;} protected byte fld_dlm = Byte_ascii.Pipe;
public byte Escape_dlm() {return escape_dlm;} public Gfo_fld_base Escape_dlm_(byte v) {escape_dlm = v; return this;} protected byte escape_dlm = Byte_ascii.Tilde;
public byte Quote_dlm() {return quote_dlm;} public Gfo_fld_base Quote_dlm_(byte v) {quote_dlm = v; return this;} protected byte quote_dlm = Byte_ascii.Nil;
@@ -32,12 +32,12 @@ public class Gfo_fld_base {
return this;
}
Gfo_fld_base Ini_common() {
- return Escape_reg(Byte_ascii.NewLine, Byte_ascii.Ltr_n).Escape_reg(Byte_ascii.Tab, Byte_ascii.Ltr_t).Escape_reg(Byte_ascii.CarriageReturn, Byte_ascii.Ltr_r)
+ return Escape_reg(Byte_ascii.Nl, Byte_ascii.Ltr_n).Escape_reg(Byte_ascii.Tab, Byte_ascii.Ltr_t).Escape_reg(Byte_ascii.Cr, Byte_ascii.Ltr_r)
.Escape_reg(Byte_ascii.Backfeed, Byte_ascii.Ltr_b); // .Escape_reg(Byte_ascii.Nil, Byte_ascii.Num_0)
}
protected Gfo_fld_base Ctor_xdat_base() {
return Escape_clear().Ini_common()
- .Fld_dlm_(Byte_ascii.Pipe).Row_dlm_(Byte_ascii.NewLine).Escape_dlm_(Byte_ascii.Tilde).Quote_dlm_(Byte_ascii.Nil)
+ .Fld_dlm_(Byte_ascii.Pipe).Row_dlm_(Byte_ascii.Nl).Escape_dlm_(Byte_ascii.Tilde).Quote_dlm_(Byte_ascii.Nil)
.Escape_reg(Byte_ascii.Pipe, Byte_ascii.Ltr_p).Escape_reg(Byte_ascii.Tilde);
}
protected Gfo_fld_base Ctor_sql_base() {
diff --git a/400_xowa/src/gplx/core/regxs/Gfo_pattern_itm_.java b/400_xowa/src/gplx/core/regxs/Gfo_pattern_itm_.java
index f2fe9b622..29343eeee 100644
--- a/400_xowa/src/gplx/core/regxs/Gfo_pattern_itm_.java
+++ b/400_xowa/src/gplx/core/regxs/Gfo_pattern_itm_.java
@@ -31,7 +31,7 @@ public class Gfo_pattern_itm_ {
case Byte_ascii.Nil:
if (itm != null) {itm.Compile(raw, itm_bgn, pos); itm = null; itm_bgn = -1;}
break;
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
if (itm != null) {itm.Compile(raw, itm_bgn, pos); itm = null; itm_bgn = -1;}
rv.Add(Gfo_pattern_itm_wild._);
break;
diff --git a/400_xowa/src/gplx/dbs/Db_attach_rdr.java b/400_xowa/src/gplx/dbs/Db_attach_rdr.java
index d6c037ffe..9e30c3907 100644
--- a/400_xowa/src/gplx/dbs/Db_attach_rdr.java
+++ b/400_xowa/src/gplx/dbs/Db_attach_rdr.java
@@ -32,7 +32,7 @@ public class Db_attach_rdr {
}
public Db_rdr Exec_as_rdr(String sql) {
sql = String_.Replace(sql, "", diff_db ? attach_name + "." : ""); // replace with either "attach_db." or "";
- return conn.Exec_sql_as_rdr2(sql);
+ return conn.Exec_sql_as_rdr_v2(sql);
}
public void Detach() {
if (diff_db) conn.Env_db_detach(attach_name);
diff --git a/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java b/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
index efd8d5f64..d8720dcda 100644
--- a/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
+++ b/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
@@ -37,7 +37,7 @@ public class Db_cfg_tbl implements RlsAble {
public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_tbl(tbl_name, "main", fld_grp, fld_key, fld_val)));}
public void Delete_val(String grp, String key) {conn.Stmt_delete(tbl_name, fld_grp, fld_key).Crt_str(fld_grp, grp).Crt_str(fld_key, key).Exec_delete();}
public void Delete_grp(String grp) {conn.Stmt_delete(tbl_name, fld_grp).Crt_str(fld_grp, grp).Exec_delete();}
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
public void Insert_yn (String grp, String key, boolean val) {Insert_str(grp, key, val ? "y" : "n");}
public void Insert_byte (String grp, String key, byte val) {Insert_str(grp, key, Byte_.Xto_str(val));}
public void Insert_int (String grp, String key, int val) {Insert_str(grp, key, Int_.Xto_str(val));}
diff --git a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr_.java b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr_.java
index a990087f3..24944af6a 100644
--- a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr_.java
+++ b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr_.java
@@ -23,10 +23,11 @@ public class Fsdb_db_mgr_ {
Io_url url = file_dir.GenSubFil(Fsdb_db_mgr__v1.Mnt_name); // EX: /xowa/file/en.wikipedia.org/wiki.mnt.sqlite3
if (Db_conn_bldr.I.Exists(url)) { // NOTE: check v1 before v2; note that as of v2.5.4, v2 files are automatically created on new import; DATE:2015-06-09
usr_dlg.Log_many("", "", "fsdb.db_core.v1: url=~{0}", url.Raw());
- usr_dlg.Log_many("", "", "fsdb.db_core.v1 exists: orig=~{0} abc=~{1} atr=~{2}"
+ usr_dlg.Log_many("", "", "fsdb.db_core.v1 exists: orig=~{0} abc=~{1} atr_a=~{2}, atr_b=~{3}"
, Db_conn_bldr.I.Exists(file_dir.GenSubFil(Fsdb_db_mgr__v1.Orig_name))
, Db_conn_bldr.I.Exists(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Fsdb_db_mgr__v1.Abc_name))
- , Db_conn_bldr.I.Exists(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Fsdb_db_mgr__v1.Atr_name))
+ , Db_conn_bldr.I.Exists(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Fsdb_db_mgr__v1.Atr_name_v1a))
+ , Db_conn_bldr.I.Exists(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Fsdb_db_mgr__v1.Atr_name_v1b))
);
return new Fsdb_db_mgr__v1(file_dir);
}
diff --git a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v1.java b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v1.java
index 1bb522fd0..5cebc315e 100644
--- a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v1.java
+++ b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v1.java
@@ -21,16 +21,17 @@ public class Fsdb_db_mgr__v1 implements Fsdb_db_mgr {
private final Io_url file_dir;
private final Fsdb_db_file orig_file, mnt_file, abc_file__main, abc_file__user, atr_file__main, atr_file__user;
private final Xof_orig_tbl[] orig_tbl_ary;
+ private String bin_prefix__main = "fsdb.bin.", bin_prefix__user = "fsdb.bin.";
public Fsdb_db_mgr__v1(Io_url file_dir) {
this.file_dir = file_dir;
- this.orig_file = get_db(file_dir.GenSubFil(Orig_name)); // EX: /xowa/enwiki/wiki.orig#00.sqlite3
- this.mnt_file = get_db(file_dir.GenSubFil(Mnt_name)); // EX: /xowa/enwiki/wiki.mnt.sqlite3
- this.abc_file__main = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Abc_name)); // EX: /xowa/enwiki/fsdb.main/fsdb.abc.sqlite3
- this.atr_file__main = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Atr_name)); // EX: /xowa/enwiki/fsdb.main/fsdb.atr.00.sqlite3
- if (Db_conn_bldr.I.Get(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_user, Abc_name)) == null) // user doesn't exist; create; DATE:2015-04-20
+ this.orig_file = get_db(file_dir.GenSubFil(Orig_name)); // EX: /xowa/enwiki/wiki.orig#00.sqlite3
+ this.mnt_file = get_db(file_dir.GenSubFil(Mnt_name)); // EX: /xowa/enwiki/wiki.mnt.sqlite3
+ this.abc_file__main = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_main, Abc_name)); // EX: /xowa/enwiki/fsdb.main/fsdb.abc.sqlite3
+ this.atr_file__main = get_db(Get_atr_db_url(Bool_.Y, file_dir, Fsm_mnt_tbl.Mnt_name_main)); // EX: /xowa/enwiki/fsdb.main/fsdb.atr.00.sqlite3
+ if (Db_conn_bldr.I.Get(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_user, Abc_name)) == null) // user doesn't exist; create; DATE:2015-04-20
Fsdb_db_mgr__v1_bldr.I.Make_core_dir(file_dir, Fsm_mnt_mgr.Mnt_idx_user, Fsm_mnt_tbl.Mnt_name_user);
- this.abc_file__user = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_user, Abc_name)); // EX: /xowa/enwiki/fsdb.user/fsdb.abc.sqlite3
- this.atr_file__user = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_user, Atr_name)); // EX: /xowa/enwiki/fsdb.user/fsdb.atr.00.sqlite3
+ this.abc_file__user = get_db(file_dir.GenSubFil_nest(Fsm_mnt_tbl.Mnt_name_user, Abc_name)); // EX: /xowa/enwiki/fsdb.user/fsdb.abc.sqlite3
+ this.atr_file__user = get_db(Get_atr_db_url(Bool_.N, file_dir, Fsm_mnt_tbl.Mnt_name_user)); // EX: /xowa/enwiki/fsdb.user/fsdb.atr.00.sqlite3
this.orig_tbl_ary = new Xof_orig_tbl[] {new Xof_orig_tbl(orig_file.Conn(), this.File__schema_is_1())};
}
public boolean File__schema_is_1() {return Bool_.Y;}
@@ -41,8 +42,9 @@ public class Fsdb_db_mgr__v1 implements Fsdb_db_mgr {
public Fsdb_db_file File__abc_file__at(int mnt_id) {return mnt_id == Fsm_mnt_mgr.Mnt_idx_main ? abc_file__main : abc_file__user;}
public Fsdb_db_file File__atr_file__at(int mnt_id) {return mnt_id == Fsm_mnt_mgr.Mnt_idx_main ? atr_file__main : atr_file__user;}
public Fsdb_db_file File__bin_file__at(int mnt_id, int bin_id, String file_name) {
- String bin_name = "fsdb.bin." + Int_.Xto_str_pad_bgn_zero(bin_id, 4) + ".sqlite3";
- String mnt_name = mnt_id == Fsm_mnt_mgr.Mnt_idx_main ? Fsm_mnt_tbl.Mnt_name_main : Fsm_mnt_tbl.Mnt_name_user;
+ boolean mnt_is_main = mnt_id == Fsm_mnt_mgr.Mnt_idx_main;
+ String bin_name = (mnt_is_main ? bin_prefix__main : bin_prefix__user) + Int_.Xto_str_pad_bgn_zero(bin_id, 4) + ".sqlite3";
+ String mnt_name = mnt_is_main ? Fsm_mnt_tbl.Mnt_name_main : Fsm_mnt_tbl.Mnt_name_user;
Io_url url = file_dir.GenSubFil_nest(mnt_name, bin_name); // EX: /xowa/enwiki/fsdb.main/fsdb.bin.0000.sqlite3
return new Fsdb_db_file(url, Db_conn_bldr.I.Get(url));
}
@@ -53,7 +55,21 @@ public class Fsdb_db_mgr__v1 implements Fsdb_db_mgr {
Fsd_bin_tbl bin_tbl = new Fsd_bin_tbl(conn, Bool_.Y); bin_tbl.Create_tbl();
return new Fsdb_db_file(url, conn);
}
- public static final String Orig_name = "wiki.orig#00.sqlite3", Mnt_name = "wiki.mnt.sqlite3", Abc_name = "fsdb.abc.sqlite3", Atr_name= "fsdb.atr.00.sqlite3";
+ private Io_url Get_atr_db_url(boolean main, Io_url file_dir, String mnt_name) {
+ Io_url rv = null;
+ rv = file_dir.GenSubFil_nest(mnt_name, Atr_name_v1a);
+ if (Io_mgr.I.ExistsFil(rv)) {
+ if (main)
+ bin_prefix__main = "fsdb.bin#";
+ else
+ bin_prefix__user = "fsdb.bin#";
+ return rv;
+ }
+ rv = file_dir.GenSubFil_nest(mnt_name, Atr_name_v1b); if (Io_mgr.I.ExistsFil(rv)) return rv;
+ throw Err_.new_("could not find atr file: dir={0} mnt={1}", file_dir.Raw(), mnt_name);
+ }
+ public static final String Orig_name = "wiki.orig#00.sqlite3", Mnt_name = "wiki.mnt.sqlite3", Abc_name = "fsdb.abc.sqlite3"
+ , Atr_name_v1a = "fsdb.atr#00.sqlite3", Atr_name_v1b = "fsdb.atr.00.sqlite3";
private static Fsdb_db_file get_db(Io_url file) {
Db_conn conn = Db_conn_bldr.I.Get(file);
if (conn == null) conn = Db_conn_.Noop;
@@ -73,7 +89,7 @@ class Fsdb_db_mgr__v1_bldr {
Fsm_bin_tbl dbb_tbl = new Fsm_bin_tbl(db_abc.Conn(), schema_is_1, mnt_id); dbb_tbl.Create_tbl();
dbb_tbl.Insert(0, "fsdb.bin.0000.sqlite3");
// make atr_fil
- Fsdb_db_file db_atr = new_db(mnt_dir.GenSubFil(Fsdb_db_mgr__v1.Atr_name));
+ Fsdb_db_file db_atr = new_db(mnt_dir.GenSubFil(Fsdb_db_mgr__v1.Atr_name_v1b)); // create atr database in v1b style; "fsdb.atr.00.sqlite3" not "fsdb.atr#00.sqlite3"
Fsd_dir_tbl dir_tbl = new Fsd_dir_tbl(db_atr.Conn(), schema_is_1); dir_tbl.Create_tbl();
Fsd_fil_tbl fil_tbl = new Fsd_fil_tbl(db_atr.Conn(), schema_is_1, mnt_id); fil_tbl.Create_tbl();
Fsd_thm_tbl thm_tbl = new Fsd_thm_tbl(db_atr.Conn(), schema_is_1, mnt_id, Bool_.Y); thm_tbl.Create_tbl();
diff --git a/400_xowa/src/gplx/fsdb/data/Fsd_bin_tbl.java b/400_xowa/src/gplx/fsdb/data/Fsd_bin_tbl.java
index e2b33c95f..e738c702b 100644
--- a/400_xowa/src/gplx/fsdb/data/Fsd_bin_tbl.java
+++ b/400_xowa/src/gplx/fsdb/data/Fsd_bin_tbl.java
@@ -16,12 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.fsdb.data; import gplx.*; import gplx.fsdb.*;
+import gplx.core.primitives.*;
import gplx.dbs.*; import gplx.ios.*;
import gplx.dbs.engines.sqlite.*;
public class Fsd_bin_tbl implements RlsAble {
private final String tbl_name = "fsdb_bin"; private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
- private final String fld_owner_id, fld_owner_tid, fld_part_id, fld_data_url, fld_data;
- private Db_conn conn; private Db_stmt stmt_insert, stmt_select; private final Bry_bfr tmp_bfr = Bry_bfr.reset_(Io_mgr.Len_kb);
+ private final String fld_owner_id, fld_owner_tid, fld_part_id, fld_data_url, fld_data;
+ private Db_conn conn; private Db_stmt stmt_insert, stmt_select; private Bry_bfr tmp_bfr;
+ private final Bool_obj_ref saved_in_parts = Bool_obj_ref.n_();
public Fsd_bin_tbl(Db_conn conn, boolean schema_is_1) {
this.conn = conn;
fld_owner_id = flds.Add_int_pkey ("bin_owner_id");
@@ -40,9 +42,12 @@ public class Fsd_bin_tbl implements RlsAble {
public void Insert_commit() {conn.Txn_sav();}
public void Insert_end() {conn.Txn_end(); stmt_insert = Db_stmt_.Rls(stmt_insert);}
public void Insert_rdr(int id, byte tid, long bin_len, Io_stream_rdr bin_rdr) {
- if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ if (stmt_insert == null) {
+ stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ tmp_bfr = Bry_bfr.reset_(Io_mgr.Len_kb);
+ }
byte[] bin_ary = null;
- synchronized (tmp_bfr) {bin_ary = Io_stream_rdr_.Load_all_as_bry(tmp_bfr, bin_rdr);}
+ bin_ary = Io_stream_rdr_.Load_all_as_bry(tmp_bfr, bin_rdr);
stmt_insert.Clear()
.Val_int(fld_owner_id, id)
.Val_byte(fld_owner_tid, tid)
@@ -52,18 +57,20 @@ public class Fsd_bin_tbl implements RlsAble {
.Exec_insert();
}
public Io_stream_rdr Select_as_rdr(int owner_id) {
- byte[] rv = Select(owner_id);
+ byte[] rv = Select(owner_id, null);
return rv == null
? Io_stream_rdr_.Noop
: Io_stream_rdr_.mem_(rv);
}
public boolean Select_to_url(int owner_id, Io_url url) {
- byte[] rv = Select(owner_id);
+ saved_in_parts.Val_n();
+ byte[] rv = Select(owner_id, url);
if (rv == null) return false;
+ if (saved_in_parts.Val_y()) return true;
Io_mgr.I.SaveFilBry(url, rv);
return true;
}
- private byte[] Select(int owner_id) {
+ private byte[] Select(int owner_id, Io_url url) {
if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, String_.Ary(fld_data), fld_owner_id);
Db_rdr rdr = stmt_select.Clear().Crt_int(fld_owner_id, owner_id).Exec_select__rls_manual();
try {
@@ -71,8 +78,12 @@ public class Fsd_bin_tbl implements RlsAble {
byte[] rv = null;
try {rv = rdr.Read_bry(fld_data);}
catch (Exception e) {
- if (Op_sys.Cur().Tid_is_drd() && String_.Has(Err_.Message_lang(e), "get field slot from row")) { // get field slot from row 0 col 0 failed
- rv = rdr.Read_bry_in_parts(tbl_name, fld_data, fld_owner_id, owner_id);
+ if ( Op_sys.Cur().Tid_is_drd()
+ && url != null // called by Select_to_url
+ && String_.Has(Err_.Message_lang(e), "get field slot from row") // get field slot from row 0 col 0 failed
+ ) {
+ rdr.Save_bry_in_parts(url, tbl_name, fld_data, fld_owner_id, owner_id);
+ saved_in_parts.Val_y_();
}
}
return rv == null ? Bry_.Empty : rv; // NOTE: bug in v0.10.1 where .ogg would save as null; return Bry_.Empty instead, else java.io.ByteArrayInputStream would fail on null
diff --git a/400_xowa/src/gplx/fsdb/data/Fsd_fil_tbl.java b/400_xowa/src/gplx/fsdb/data/Fsd_fil_tbl.java
index cb3386ad9..75f735dc8 100644
--- a/400_xowa/src/gplx/fsdb/data/Fsd_fil_tbl.java
+++ b/400_xowa/src/gplx/fsdb/data/Fsd_fil_tbl.java
@@ -89,7 +89,7 @@ public class Fsd_fil_tbl implements RlsAble {
finally {rdr.Rls();}
}
public void Select_all(Bry_bfr key_bfr, gplx.cache.Gfo_cache_mgr_bry cache) {
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
Fsd_fil_itm fil = new_(mnt_id, rdr);
diff --git a/400_xowa/src/gplx/fsdb/meta/Fsm_atr_tbl.java b/400_xowa/src/gplx/fsdb/meta/Fsm_atr_tbl.java
index fa7cddcc6..35fffca71 100644
--- a/400_xowa/src/gplx/fsdb/meta/Fsm_atr_tbl.java
+++ b/400_xowa/src/gplx/fsdb/meta/Fsm_atr_tbl.java
@@ -31,7 +31,7 @@ public class Fsm_atr_tbl {
}
public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds));}
public Fsm_atr_fil Select_1st_or_fail(Fsm_mnt_itm mnt_itm, Fsdb_db_mgr core_mgr, int mnt_id, boolean schema_thm_page) {
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
boolean schema_is_1 = core_mgr.File__schema_is_1();
try {
if (rdr.Move_next()) {
diff --git a/400_xowa/src/gplx/fsdb/meta/Fsm_bin_tbl.java b/400_xowa/src/gplx/fsdb/meta/Fsm_bin_tbl.java
index 1f1b0496c..56f85ef7c 100644
--- a/400_xowa/src/gplx/fsdb/meta/Fsm_bin_tbl.java
+++ b/400_xowa/src/gplx/fsdb/meta/Fsm_bin_tbl.java
@@ -43,7 +43,7 @@ public class Fsm_bin_tbl {
}
public Fsm_bin_fil[] Select_all(Fsdb_db_mgr db_conn_mgr) {
List_adp rv = List_adp_.new_();
- Db_rdr rdr = conn.Stmt_select_order(tbl_name, flds, Db_meta_fld.Ary_empy, fld_uid).Clear().Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select_order(tbl_name, flds, Db_meta_fld.Ary_empty, fld_uid).Clear().Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
int bin_id = rdr.Read_int(fld_uid);
diff --git a/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_tbl.java b/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_tbl.java
index b2ef47696..85a49afa8 100644
--- a/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_tbl.java
+++ b/400_xowa/src/gplx/fsdb/meta/Fsm_mnt_tbl.java
@@ -45,7 +45,7 @@ public class Fsm_mnt_tbl implements RlsAble {
}
public Fsm_mnt_itm[] Select_all() {
List_adp list = List_adp_.new_();
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Clear().Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Clear().Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
Fsm_mnt_itm itm = new Fsm_mnt_itm(rdr.Read_int(fld_id), rdr.Read_str(fld_name), rdr.Read_str(fld_url));
diff --git a/400_xowa/src/gplx/gfs/Gfs_parser.java b/400_xowa/src/gplx/gfs/Gfs_parser.java
index 189f45c40..4bd6017b9 100644
--- a/400_xowa/src/gplx/gfs/Gfs_parser.java
+++ b/400_xowa/src/gplx/gfs/Gfs_parser.java
@@ -72,13 +72,13 @@ class Gfs_parser_ {
trie_add_rng(rv, word_lxr, Byte_ascii.Ltr_A, Byte_ascii.Ltr_Z);
trie_add_rng(rv, word_lxr, Byte_ascii.Num_0, Byte_ascii.Num_9);
rv.Add(Byte_ascii.Underline, word_lxr);
- trie_add_many(rv, Gfs_lxr_whitespace._, Byte_ascii.Space, Byte_ascii.NewLine, Byte_ascii.CarriageReturn, Byte_ascii.Tab);
+ trie_add_many(rv, Gfs_lxr_whitespace._, Byte_ascii.Space, Byte_ascii.Nl, Byte_ascii.Cr, Byte_ascii.Tab);
trie_add_quote(rv, new byte[] {Byte_ascii.Apos});
trie_add_quote(rv, new byte[] {Byte_ascii.Quote});
trie_add_quote(rv, Bry_.new_a7("<:[\"\n"), Bry_.new_a7("\n\"]:>"));
trie_add_quote(rv, Bry_.new_a7("<:['\n"), Bry_.new_a7("\n']:>"));
- trie_add_comment(rv, new byte[] {Byte_ascii.Slash, Byte_ascii.Slash}, new byte[] {Byte_ascii.NewLine});
- trie_add_comment(rv, new byte[] {Byte_ascii.Slash, Byte_ascii.Asterisk}, new byte[] {Byte_ascii.Asterisk, Byte_ascii.Slash});
+ trie_add_comment(rv, new byte[] {Byte_ascii.Slash, Byte_ascii.Slash}, new byte[] {Byte_ascii.Nl});
+ trie_add_comment(rv, new byte[] {Byte_ascii.Slash, Byte_ascii.Star}, new byte[] {Byte_ascii.Star, Byte_ascii.Slash});
rv.Add(Byte_ascii.Semic, Gfs_lxr_semic._);
rv.Add(Byte_ascii.Paren_bgn, Gfs_lxr_paren_bgn._);
rv.Add(Byte_ascii.Paren_end, Gfs_lxr_paren_end._);
diff --git a/400_xowa/src/gplx/gfs/Gfs_parser_ctx.java b/400_xowa/src/gplx/gfs/Gfs_parser_ctx.java
index 8f01344d0..92c4c78ae 100644
--- a/400_xowa/src/gplx/gfs/Gfs_parser_ctx.java
+++ b/400_xowa/src/gplx/gfs/Gfs_parser_ctx.java
@@ -117,8 +117,8 @@ class Gfs_err_mgr {
byte b = src[i];
switch (b) {
case Byte_ascii.Tab: bfr.Add(Esc_tab); break;
- case Byte_ascii.NewLine: bfr.Add(Esc_nl); break;
- case Byte_ascii.CarriageReturn: bfr.Add(Esc_cr); break;
+ case Byte_ascii.Nl: bfr.Add(Esc_nl); break;
+ case Byte_ascii.Cr: bfr.Add(Esc_cr); break;
default: bfr.Add_byte(b); break;
}
}
diff --git a/400_xowa/src/gplx/gfui/Gfui_bnd_parser.java b/400_xowa/src/gplx/gfui/Gfui_bnd_parser.java
index 97001e120..9bb286ce3 100644
--- a/400_xowa/src/gplx/gfui/Gfui_bnd_parser.java
+++ b/400_xowa/src/gplx/gfui/Gfui_bnd_parser.java
@@ -48,7 +48,7 @@ public class Gfui_bnd_parser {
tkns.Clear(); mod_val = Mod_val_null;
int pos = 0; int itm_bgn = -1, itm_end = -1; boolean is_numeric = false;
while (pos <= src_len) { // loop over bytes and break up tkns by symbols
- byte b = pos == src_len ? Byte_ascii.NewLine: src[pos]; // treat eos as "\n" for purpose of separating tokens
+ byte b = pos == src_len ? Byte_ascii.Nl: src[pos]; // treat eos as "\n" for purpose of separating tokens
Gfui_bnd_tkn sym_tkn = null;
switch (b) {
case Byte_ascii.Plus: // simultaneous; EX: Ctrl + S
@@ -60,7 +60,7 @@ public class Gfui_bnd_parser {
case Byte_ascii.Comma: // chorded; EX: Ctrl + S, Ctrl + T
sym_tkn = Itm_sym_comma;
break;
- case Byte_ascii.NewLine: // eos: process anything in bfr
+ case Byte_ascii.Nl: // eos: process anything in bfr
sym_tkn = Itm_sym_eos;
break;
case Byte_ascii.Space:
diff --git a/400_xowa/src/gplx/html/Html_parser.java b/400_xowa/src/gplx/html/Html_parser.java
index d62c81409..2bb341550 100644
--- a/400_xowa/src/gplx/html/Html_parser.java
+++ b/400_xowa/src/gplx/html/Html_parser.java
@@ -126,7 +126,7 @@ public class Html_parser {
private void Skip_ws() {
while (pos < end) {
switch (src[pos]) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
++pos;
break;
default:
diff --git a/400_xowa/src/gplx/json/Json_grp.java b/400_xowa/src/gplx/json/Json_grp.java
index e4bcb4ff7..db8859b34 100644
--- a/400_xowa/src/gplx/json/Json_grp.java
+++ b/400_xowa/src/gplx/json/Json_grp.java
@@ -25,7 +25,7 @@ public interface Json_grp extends Json_itm {
class Json_grp_ {
public static final Json_grp[] Ary_empty = new Json_grp[0];
public static void Print_nl(Bry_bfr bfr) { // \n\n can be caused by nested groups (EX: "[[]]"); only print 1
- if (bfr.Bfr()[bfr.Len() - 1] != Byte_ascii.NewLine)
+ if (bfr.Bfr()[bfr.Len() - 1] != Byte_ascii.Nl)
bfr.Add_byte_nl();
}
public static void Print_indent(Bry_bfr bfr, int depth) {
diff --git a/400_xowa/src/gplx/json/Json_itm.java b/400_xowa/src/gplx/json/Json_itm.java
index fac0119e3..515450fd7 100644
--- a/400_xowa/src/gplx/json/Json_itm.java
+++ b/400_xowa/src/gplx/json/Json_itm.java
@@ -90,8 +90,8 @@ class Json_itm_str extends Json_itm_base {
b = src[++i];
switch (b) { // NOTE: must properly unescape chars; EX:wd.q:2; DATE:2014-04-23
case Byte_ascii.Ltr_t: bfr.Add_byte(Byte_ascii.Tab); break;
- case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.NewLine); break;
- case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.CarriageReturn); break;
+ case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.Nl); break;
+ case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.Cr); break;
case Byte_ascii.Ltr_b: bfr.Add_byte(Byte_ascii.Backfeed); break;
case Byte_ascii.Ltr_f: bfr.Add_byte(Byte_ascii.Formfeed); break;
case Byte_ascii.Ltr_u:
diff --git a/400_xowa/src/gplx/json/Json_parser.java b/400_xowa/src/gplx/json/Json_parser.java
index 65a1a55e8..ff56aa83a 100644
--- a/400_xowa/src/gplx/json/Json_parser.java
+++ b/400_xowa/src/gplx/json/Json_parser.java
@@ -148,7 +148,7 @@ public class Json_parser {
private void Skip_ws() {
while (pos < src_len) {
switch (src[pos]) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn: ++pos; break;
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: case Byte_ascii.Cr: ++pos; break;
default: return;
}
}
diff --git a/400_xowa/src/gplx/php/Php_lxr.java b/400_xowa/src/gplx/php/Php_lxr.java
index bce51a3fb..4f5b3f951 100644
--- a/400_xowa/src/gplx/php/Php_lxr.java
+++ b/400_xowa/src/gplx/php/Php_lxr.java
@@ -46,7 +46,7 @@ class Php_lxr_declaration extends Php_lxr_base {
if (cur == src_len) break;
byte b = src[cur];
switch (b) {
- case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Nl: case Byte_ascii.Cr:
ws_found = true;
++cur;
break;
@@ -84,7 +84,7 @@ class Php_lxr_ws extends Php_lxr_base {
if (cur == src_len) break;
byte b = src[cur];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: case Byte_ascii.Cr:
++cur;
break;
default:
@@ -238,11 +238,11 @@ class Php_lxr_keyword extends Php_lxr_base {
if (cur < src_len) {
byte next_byte = src[cur];
switch (next_byte) { // valid characters for end of word; EX: 'null '; 'null='; etc..
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr:
case Byte_ascii.Hash: case Byte_ascii.Slash:
case Byte_ascii.Quote: case Byte_ascii.Apos:
case Byte_ascii.Bang: case Byte_ascii.Dollar: case Byte_ascii.Percent: case Byte_ascii.Amp:
- case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk: case Byte_ascii.Plus:
+ case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star: case Byte_ascii.Plus:
case Byte_ascii.Comma: case Byte_ascii.Dash: case Byte_ascii.Dot: case Byte_ascii.Semic:
case Byte_ascii.Lt: case Byte_ascii.Eq: case Byte_ascii.Gt: case Byte_ascii.Question: case Byte_ascii.At:
case Byte_ascii.Brack_bgn: case Byte_ascii.Backslash: case Byte_ascii.Brack_end: case Byte_ascii.Pow: case Byte_ascii.Tick:
diff --git a/400_xowa/src/gplx/php/Php_text_itm_parser.java b/400_xowa/src/gplx/php/Php_text_itm_parser.java
index d1ea515f7..fc994f446 100644
--- a/400_xowa/src/gplx/php/Php_text_itm_parser.java
+++ b/400_xowa/src/gplx/php/Php_text_itm_parser.java
@@ -67,11 +67,11 @@ public class Php_text_itm_parser {
case Byte_ascii.Backslash: next_char = Byte_ascii.Backslash; break;
case Byte_ascii.Quote: next_char = Byte_ascii.Quote; break;
case Byte_ascii.Ltr_N:
- case Byte_ascii.Ltr_n: next_char = Byte_ascii.NewLine; break;
+ case Byte_ascii.Ltr_n: next_char = Byte_ascii.Nl; break;
case Byte_ascii.Ltr_T:
case Byte_ascii.Ltr_t: next_char = Byte_ascii.Tab; break;
case Byte_ascii.Ltr_R:
- case Byte_ascii.Ltr_r: next_char = Byte_ascii.CarriageReturn; break;
+ case Byte_ascii.Ltr_r: next_char = Byte_ascii.Cr; break;
case Byte_ascii.Ltr_U:
case Byte_ascii.Ltr_u: { // EX: "\u007C"
rslt_val = Rslt_dirty;
diff --git a/400_xowa/src/gplx/srls/dsvs/Dsv_fld_parser_.java b/400_xowa/src/gplx/srls/dsvs/Dsv_fld_parser_.java
index 94380f480..a18fc6682 100644
--- a/400_xowa/src/gplx/srls/dsvs/Dsv_fld_parser_.java
+++ b/400_xowa/src/gplx/srls/dsvs/Dsv_fld_parser_.java
@@ -25,7 +25,7 @@ public class Dsv_fld_parser_ {
}
}
class Dsv_fld_parser_line implements Dsv_fld_parser {
- private byte row_dlm = Byte_ascii.NewLine; private final byte comment_dlm;
+ private byte row_dlm = Byte_ascii.Nl; private final byte comment_dlm;
public Dsv_fld_parser_line(byte comment_dlm) {this.comment_dlm = comment_dlm;}
public void Init(byte fld_dlm, byte row_dlm) {
this.row_dlm = row_dlm;
@@ -53,7 +53,7 @@ class Dsv_fld_parser_line implements Dsv_fld_parser {
}
}
class Dsv_fld_parser_bry implements Dsv_fld_parser {
- private byte fld_dlm = Byte_ascii.Pipe, row_dlm = Byte_ascii.NewLine;
+ private byte fld_dlm = Byte_ascii.Pipe, row_dlm = Byte_ascii.Nl;
public void Init(byte fld_dlm, byte row_dlm) {
this.fld_dlm = fld_dlm; this.row_dlm = row_dlm;
}
@@ -83,7 +83,7 @@ class Dsv_fld_parser_bry implements Dsv_fld_parser {
public static final Dsv_fld_parser_bry _ = new Dsv_fld_parser_bry(); Dsv_fld_parser_bry() {}
}
class Dsv_fld_parser_int implements Dsv_fld_parser {
- private byte fld_dlm = Byte_ascii.Pipe, row_dlm = Byte_ascii.NewLine;
+ private byte fld_dlm = Byte_ascii.Pipe, row_dlm = Byte_ascii.Nl;
public void Init(byte fld_dlm, byte row_dlm) {
this.fld_dlm = fld_dlm; this.row_dlm = row_dlm;
}
diff --git a/400_xowa/src/gplx/srls/dsvs/Dsv_tbl_parser.java b/400_xowa/src/gplx/srls/dsvs/Dsv_tbl_parser.java
index 1b9e75ddd..3772f0c1f 100644
--- a/400_xowa/src/gplx/srls/dsvs/Dsv_tbl_parser.java
+++ b/400_xowa/src/gplx/srls/dsvs/Dsv_tbl_parser.java
@@ -26,7 +26,7 @@ public class Dsv_tbl_parser implements GfoInvkAble, RlsAble {
public int Row_idx() {return row_idx;} private int row_idx = 0;
public boolean Skip_blank_lines() {return skip_blank_lines;} public Dsv_tbl_parser Skip_blank_lines_(boolean v) {skip_blank_lines = v; return this;} private boolean skip_blank_lines = true;
public byte Fld_dlm() {return fld_dlm;} public Dsv_tbl_parser Fld_dlm_(byte v) {fld_dlm = v; return this;} private byte fld_dlm = Byte_ascii.Pipe;
- public byte Row_dlm() {return row_dlm;} public Dsv_tbl_parser Row_dlm_(byte v) {row_dlm = v; return this;} private byte row_dlm = Byte_ascii.NewLine;
+ public byte Row_dlm() {return row_dlm;} public Dsv_tbl_parser Row_dlm_(byte v) {row_dlm = v; return this;} private byte row_dlm = Byte_ascii.Nl;
public void Init(Dsv_wkr_base mgr, Dsv_fld_parser... fld_parsers) {
this.mgr = mgr;
this.fld_parsers = fld_parsers;
diff --git a/400_xowa/src/gplx/web/js/Js_wtr.java b/400_xowa/src/gplx/web/js/Js_wtr.java
deleted file mode 100644
index 37bd595ef..000000000
--- a/400_xowa/src/gplx/web/js/Js_wtr.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012 gnosygnu@gmail.com
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
-*/
-package gplx.web.js; import gplx.*; import gplx.web.*;
-public class Js_wtr {
- private Bry_bfr bfr = Bry_bfr.reset_(255);
- public byte Quote_char() {return quote_char;} public Js_wtr Quote_char_(byte v) {quote_char = v; return this;} private byte quote_char = Byte_ascii.Quote;
- public void Clear() {bfr.Clear();}
- public String Xto_str() {return bfr.Xto_str();}
- public String Xto_str_and_clear() {return bfr.Xto_str_and_clear();}
- public Js_wtr Add_comma() {bfr.Add_byte(Byte_ascii.Comma); return this;}
- public Js_wtr Add_paren_bgn() {bfr.Add_byte(Byte_ascii.Paren_bgn); return this;}
- public Js_wtr Add_paren_end() {bfr.Add_byte(Byte_ascii.Paren_end); return this;}
- public Js_wtr Add_brack_bgn() {bfr.Add_byte(Byte_ascii.Brack_bgn); return this;}
- public Js_wtr Add_brack_end() {bfr.Add_byte(Byte_ascii.Brack_end); return this;}
- public Js_wtr Add_str(byte[] v) {bfr.Add(v); return this;}
- public Js_wtr Add_str(String v) {bfr.Add_str(v); return this;}
- public Js_wtr Add_paren_end_semic() {bfr.Add_byte(Byte_ascii.Paren_end); bfr.Add_byte(Byte_ascii.Semic); return this;}
- public Js_wtr Add_str_arg(int i, byte[] bry){
- if (i != 0) bfr.Add_byte(Byte_ascii.Comma);
- Add_str_quote(bry);
- return this;
- }
- public Js_wtr Add_str_quote(byte[] bry) {
- bfr.Add_byte(quote_char);
- int len = bry.length;
- for (int i = 0; i < len; i++) {
- byte b = bry[i];
- if (b == quote_char) bfr.Add_byte(Byte_ascii.Backslash);
- bfr.Add_byte(b);
- }
- bfr.Add_byte(quote_char);
- return this;
- }
- public Js_wtr Add_str_quote_html(byte[] bry) {
- bfr.Add_byte(quote_char);
- int len = bry.length;
- for (int i = 0; i < len; i++) {
- byte b = bry[i];
- if (b == quote_char) { // double up quotes
- bfr.Add_byte(Byte_ascii.Backslash);
- bfr.Add_byte(b);
- }
- else {
- switch (b) {
- case Byte_ascii.Backslash: bfr.Add_byte_repeat(Byte_ascii.Backslash, 2); break; // "\" -> "\\"; needed else js will usurp \ as escape; EX: "\&" -> "&"; DATE:2014-06-24
- case Byte_ascii.NewLine: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break; // "\n" -> "\\n"
- case Byte_ascii.CarriageReturn: break;// skip
- default: bfr.Add_byte(b); break;
- }
- }
- }
- bfr.Add_byte(quote_char);
- return this;
- }
-}
diff --git a/400_xowa/src/gplx/xowa/Xoa_app_.java b/400_xowa/src/gplx/xowa/Xoa_app_.java
index 28f87f7a7..d31cb6978 100644
--- a/400_xowa/src/gplx/xowa/Xoa_app_.java
+++ b/400_xowa/src/gplx/xowa/Xoa_app_.java
@@ -26,7 +26,7 @@ public class Xoa_app_ {
boot_mgr.Run(args);
}
public static final String Name = "xowa";
- public static final String Version = "2.6.4.1";
+ public static final String Version = "2.6.5.1";
public static String Build_date = "2012-12-30 00:00:00";
public static String Op_sys;
public static String User_agent = "";
diff --git a/400_xowa/src/gplx/xowa/Xoa_consts.java b/400_xowa/src/gplx/xowa/Xoa_consts.java
index f985abb2e..e2daee7ac 100644
--- a/400_xowa/src/gplx/xowa/Xoa_consts.java
+++ b/400_xowa/src/gplx/xowa/Xoa_consts.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
public class Xoa_consts {
public static final byte[]
- Nl_bry = new byte[] {Byte_ascii.NewLine}
+ Nl_bry = new byte[] {Byte_ascii.Nl}
, Slash_bry = new byte[] {Byte_ascii.Slash}
, Pipe_bry = new byte[] {Byte_ascii.Pipe}
, Invk_bgn = new byte[] {Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn} // "{{"
diff --git a/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_find.java b/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_find.java
index 0aa650448..0bc3bcb17 100644
--- a/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_find.java
+++ b/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_find.java
@@ -71,11 +71,11 @@ class Xog_find_box {
}
private void Exec_find(String find, boolean highlight_matches) {
Xog_tab_itm tab = win.Tab_mgr().Active_tab(); if (tab == Xog_tab_itm_.Null) return;
- String elem_id = tab.View_mode() == Xopg_view_mode.Tid_read
- ? Gfui_html.Elem_id_body
- : Xog_html_itm.Elem_id__xowa_edit_data_box
- ;
- tab.Html_box().Html_doc_find(elem_id, find, dir_fwd, case_match, wrap_search, highlight_matches);
+ boolean find_in_hdoc = tab.View_mode() == Xopg_view_mode.Tid_read;
+ if (find_in_hdoc)
+ tab.Html_box().Html_js_eval_proc_as_str(Xog_js_procs.Win__find_in_hdoc , find, dir_fwd, case_match, wrap_search, highlight_matches);
+ else
+ tab.Html_box().Html_js_eval_proc_as_str(Xog_js_procs.Win__find_in_textarea , find, dir_fwd, case_match, wrap_search);
win.Usr_dlg().Prog_direct("");
}
public void Case_toggle() {
diff --git a/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_html_box.java b/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_html_box.java
index aa67a0d92..a56c1a22b 100644
--- a/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_html_box.java
+++ b/400_xowa/src/gplx/xowa/apis/xowa/gui/browsers/Xoapi_html_box.java
@@ -30,12 +30,12 @@ public class Xoapi_html_box implements GfoInvkAble, GfoEvMgrOwner {
Gfui_html html_box = tab.Html_itm().Html_box();
html_box.Focus();
if (tab.View_mode() != Xopg_view_mode.Tid_read) // if edit / html, place focus in edit box
- html_box.Html_elem_focus(Xog_html_itm.Elem_id__xowa_edit_data_box);
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__elem_focus, Xog_html_itm.Elem_id__xowa_edit_data_box);
}
public void Selection_focus() {
Xog_tab_itm tab = win.Active_tab(); if (tab == Xog_tab_itm_.Null) return;
Gfui_html html_box = tab.Html_itm().Html_box();
- html_box.Html_doc_selection_focus_toggle();
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__toggle_focus_for_anchor);
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_focus)) this.Focus();
diff --git a/400_xowa/src/gplx/xowa/apis/xowa/gui/pages/Xoapi_view.java b/400_xowa/src/gplx/xowa/apis/xowa/gui/pages/Xoapi_view.java
index 50e3f2b97..9b49be0b1 100644
--- a/400_xowa/src/gplx/xowa/apis/xowa/gui/pages/Xoapi_view.java
+++ b/400_xowa/src/gplx/xowa/apis/xowa/gui/pages/Xoapi_view.java
@@ -31,7 +31,7 @@ public class Xoapi_view implements GfoInvkAble {
public void Refresh() {if (Active_tab_is_null()) return; win.Page__refresh();}
public void Print() {
if (this.Active_tab_is_null()) return;
- win.Active_html_box().Html_window_print_preview();
+ win.Active_html_box().Html_js_eval_proc_as_str(Xog_js_procs.Win__print_preview);
}
public void Save_as() {
if (this.Active_tab_is_null()) return;
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
index 46968b880..9fd59c393 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
@@ -41,6 +41,7 @@ public class Xob_cmd_keys {
, Key_file_xfer_regy = "file.xfer_regy"
, Key_file_xfer_regy_update = "file.xfer_regy_update"
, Key_file_fsdb_make = "file.fsdb_make"
+ , Key_file_fsdb_reduce = "file.fsdb_reduce"
, Key_file_orig_reg = "file.orig_reg"
, Key_file_xfer_update = "file.xfer_update"
, Key_html_redlinks = "html.redlinks"
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_ns_file_itm_parser.java b/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_ns_file_itm_parser.java
index 40a3ccfea..baae68421 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_ns_file_itm_parser.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_ns_file_itm_parser.java
@@ -46,7 +46,7 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
return;
}
int[] ns_ids = null;
- if (ns_ids_bry.length == 1 && ns_ids_bry[0] == Byte_ascii.Asterisk) { // "*"
+ if (ns_ids_bry.length == 1 && ns_ids_bry[0] == Byte_ascii.Star) { // "*"
int len = ns_mgr.Ords_len();
ns_ids = new int[len];
for (int i = 0; i < len; ++i)
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_categorylinks_base.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_categorylinks_base.java
index dc27654e5..3164d229a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_categorylinks_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_categorylinks_base.java
@@ -36,7 +36,7 @@ public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implement
? 0 : Bit_.Xto_int_date_short(cur_modified_on);
}
else if (Bry_.Eq(fld_key, Fld_cl_sortkey)) {
- int nl_pos = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, fld_bgn, fld_end);
+ int nl_pos = Bry_finder.Find_fwd(src, Byte_ascii.Nl, fld_bgn, fld_end);
if (nl_pos != Bry_.NotFound) // sortkey sometimes has format of "sortkey\ntitle"; EX: "WALES, JIMMY\nJIMMY WALES"; discard 2nd to conserve hard-disk space
fld_end = nl_pos;
cur_sortkey = Bry_.Mid(src, fld_bgn, fld_end);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_link_idx_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_link_idx_wkr.java
index cea0e97f4..7d3c137f8 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_link_idx_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_link_idx_wkr.java
@@ -108,7 +108,7 @@ class Xoctg_make_link_mgr {
}
public void Write_bgn() {
make_cmd.Sort_bgn();
- make_cmd.Line_dlm_(Byte_ascii.NewLine);
+ make_cmd.Line_dlm_(Byte_ascii.Nl);
}
public void Flush() {
make_cmd.Sort_end();
@@ -177,7 +177,7 @@ class Xoctg_make_main_mgr {
}
public void Write_bgn() {
make_cmd.Sort_bgn();
- make_cmd.Line_dlm_(Byte_ascii.NewLine);
+ make_cmd.Line_dlm_(Byte_ascii.Nl);
}
public void Flush() {
make_cmd.Sort_end();
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_reduce_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_reduce_cmd.java
new file mode 100644
index 000000000..3b049ba89
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_reduce_cmd.java
@@ -0,0 +1,62 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.bldrs.cmds.files; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
+import gplx.dbs.*; import gplx.dbs.engines.sqlite.*; import gplx.fsdb.meta.*;
+public class Xob_fsdb_reduce_cmd extends Xob_itm_basic_base implements Xob_cmd {
+ public Xob_fsdb_reduce_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
+ public String Cmd_key() {return Xob_cmd_keys.Key_file_fsdb_reduce;}
+ public void Cmd_init(Xob_bldr bldr) {}
+ public void Cmd_bgn(Xob_bldr bldr) {}
+ public void Cmd_run() {Exec_main();}
+ public void Cmd_end() {}
+ public void Cmd_term() {}
+ private void Exec_main() {
+ /*
+ Open_bin_dir
+ Iterate_files
+ Convert_bin
+ Mark_meta_record
+ */
+ }
+ @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ return this;
+ }
+}
+class Fsdb_reduce_wkr {
+ private final ProcessAdp convert_process;
+ private final Io_url src_url, trg_url;
+ private final int dpi, quality;
+ public Fsdb_reduce_wkr(ProcessAdp convert_process, Io_url tmp_dir, int dpi, int quality) {
+ this.convert_process = convert_process;
+ this.src_url = tmp_dir.GenSubFil("fsdb_reduce.src.bin");
+ this.trg_url = tmp_dir.GenSubFil("fsdb_reduce.trg.bin");
+ this.dpi = dpi;
+ this.quality = quality;
+ }
+ public byte[] Reduce(byte[] orig_bry) {
+ Io_mgr.I.SaveFilBry(src_url, orig_bry);
+ convert_process.Run(src_url, trg_url, dpi, quality); // -strip -quality 50% -density 72 -resample 72
+ if (!convert_process.Exit_code_pass()) {
+ // throw err with convert_process.Rslt_out();
+ }
+ byte[] rv = Io_mgr.I.LoadFilBry(trg_url);
+ // fail if 0; fail if greater than;
+ // warn if not between 50% - 70% of size
+ return rv;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java
index 2b7c6d01a..21b3f0018 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java
@@ -49,7 +49,7 @@ public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_
byte[] word = words[i];
wtr.Bfr() .Add(word) .Add_byte(Byte_ascii.Pipe)
.Add_base85_len_5(page.Id()) .Add_byte(Byte_ascii.Semic)
- .Add_base85_len_5(page.Text().length) .Add_byte(Byte_ascii.NewLine);
+ .Add_base85_len_5(page.Text().length) .Add_byte(Byte_ascii.Nl);
}
} catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_brief(e));} // never let single page crash entire import
}
@@ -81,12 +81,12 @@ public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_
switch (b) {
case Byte_ascii.Underline: // underline is word-breaking; EX: A_B -> A, B
case Byte_ascii.Space: // should not occur, but just in case (only underscores)
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: // should not occur in titles, but just in case
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: // should not occur in titles, but just in case
case Byte_ascii.Dash: // treat hypenated words separately
case Byte_ascii.Dot: // treat abbreviations as separate words; EX: A.B.C.
case Byte_ascii.Bang: case Byte_ascii.Hash: case Byte_ascii.Dollar: case Byte_ascii.Percent:
- case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk:
+ case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star:
case Byte_ascii.Comma: case Byte_ascii.Slash:
case Byte_ascii.Colon: case Byte_ascii.Semic: case Byte_ascii.Gt:
case Byte_ascii.Question: case Byte_ascii.At: case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end:
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
index 660c1abbd..f71dea021 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
@@ -42,7 +42,7 @@ public class Xob_page_txt extends Xob_itm_dump_base implements Xobd_wkr, GfoInvk
Xob_xdat_file_wtr page_wtr = Page_wtr_get(ns);
if (page_wtr.FlushNeeded(Xotdb_page_itm_.Txt_page_len__fixed + ttl_len + text_len)) page_wtr.Flush(bldr.Usr_dlg());
Xotdb_page_itm_.Txt_page_save(page_wtr.Bfr(), id, page.Modified_on(), ttl_wo_ns, text, false);
- page_wtr.Add_idx(Byte_ascii.NewLine);
+ page_wtr.Add_idx(Byte_ascii.Nl);
// idx: EX: 00100|aB64|Ttl;
Xob_tmp_wtr ttl_wtr = ttl_wtr_mgr.Get_or_new(ns);
diff --git a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_img_downloader.java b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_img_downloader.java
index 650f93709..a5082ae80 100644
--- a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_img_downloader.java
+++ b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_img_downloader.java
@@ -168,7 +168,7 @@ public class Xoa_css_img_downloader {
byte b = raw_bry[i];
switch (b) {
//case Byte_ascii.Slash:
- case Byte_ascii.Backslash: case Byte_ascii.Colon: case Byte_ascii.Asterisk: case Byte_ascii.Question:
+ case Byte_ascii.Backslash: case Byte_ascii.Colon: case Byte_ascii.Star: case Byte_ascii.Question:
case Byte_ascii.Quote: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Pipe:
raw_bry[i] = Byte_ascii.Underline;
break;
diff --git a/400_xowa/src/gplx/xowa/bldrs/css/Xob_css_tkn__base.java b/400_xowa/src/gplx/xowa/bldrs/css/Xob_css_tkn__base.java
index b5aa3372c..0d6c085c4 100644
--- a/400_xowa/src/gplx/xowa/bldrs/css/Xob_css_tkn__base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/css/Xob_css_tkn__base.java
@@ -84,7 +84,7 @@ class Xob_css_tkn__url extends Xob_css_tkn__base {
case Byte_ascii.Slash:
case Byte_ascii.Backslash:
break;
- case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Colon: case Byte_ascii.Pipe: case Byte_ascii.Question: case Byte_ascii.Asterisk: case Byte_ascii.Quote:
+ case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Colon: case Byte_ascii.Pipe: case Byte_ascii.Question: case Byte_ascii.Star: case Byte_ascii.Quote:
src[i] = Byte_ascii.Underline;
break;
default:
diff --git a/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_parser.java b/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_parser.java
index b96280782..a4e8566b8 100644
--- a/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_parser.java
+++ b/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_parser.java
@@ -39,7 +39,7 @@ class Dg_parser {
int file_id = ++next_id;
while (line_bgn < src_len) {
++line_idx;
- int line_end = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, line_bgn); if (line_end == Bry_finder.Not_found) line_end = src_len;
+ int line_end = Bry_finder.Find_fwd(src, Byte_ascii.Nl, line_bgn); if (line_end == Bry_finder.Not_found) line_end = src_len;
Dg_rule line = Parse_line(rel_path, file_id, line_idx, src, line_bgn, line_end);
if (line.Tid() != Dg_rule.Tid_invalid)
lines.Add(line);
diff --git a/400_xowa/src/gplx/xowa/bldrs/langs/Xobc_utl_make_lang_kwds.java b/400_xowa/src/gplx/xowa/bldrs/langs/Xobc_utl_make_lang_kwds.java
index 74f8e35d5..97786393e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/langs/Xobc_utl_make_lang_kwds.java
+++ b/400_xowa/src/gplx/xowa/bldrs/langs/Xobc_utl_make_lang_kwds.java
@@ -117,14 +117,14 @@ public class Xobc_utl_make_lang_kwds implements GfoInvkAble, Xol_lang_transform
List_adp rv = List_adp_.new_(); int fld_idx = 0;
while (true) {
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
cur_key = csv_parser.Load(src, fld_bgn, pos);
fld_bgn = pos + 1;
++fld_idx;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (pos - fld_bgn > 0 || fld_idx == 1) {
byte[] cur_val = csv_parser.Load(src, fld_bgn, pos);
Xobcl_kwd_row row = new Xobcl_kwd_row(cur_key, Bry_.Split(cur_val, Byte_ascii.Tilde));
diff --git a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_.java b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_.java
index 89550d495..6ee3fdd73 100644
--- a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_.java
+++ b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_.java
@@ -26,7 +26,7 @@ public class Xob_xml_parser_ {
trie_add(rv, Bry_timestamp_bgn, Id_timestamp_bgn); trie_add(rv, Bry_timestamp_bgn_frag, Id_timestamp_bgn_frag); trie_add(rv, Bry_timestamp_end, Id_timestamp_end);
trie_add(rv, Bry_text_bgn, Id_text_bgn); trie_add(rv, Bry_text_bgn_frag, Id_text_bgn_frag); trie_add(rv, Bry_text_end, Id_text_end);
trie_add(rv, Bry_amp, Id_amp, Byte_ascii.Amp); trie_add(rv, Bry_quot, Id_quot, Byte_ascii.Quote); trie_add(rv, Bry_gt, Id_gt, Byte_ascii.Gt); trie_add(rv, Bry_lt, Id_lt, Byte_ascii.Lt);
- trie_add(rv, Bry_tab, Id_tab, Bry_tab_ent); trie_add(rv, Bry_cr_nl, Id_cr_nl, Byte_ascii.NewLine); trie_add(rv, Bry_cr, Id_cr, Byte_ascii.NewLine);
+ trie_add(rv, Bry_tab, Id_tab, Bry_tab_ent); trie_add(rv, Bry_cr_nl, Id_cr_nl, Byte_ascii.Nl); trie_add(rv, Bry_cr, Id_cr, Byte_ascii.Nl);
return rv;
}
public static final byte[]
diff --git a/400_xowa/src/gplx/xowa/dbs/Xodb_load_mgr_txt.java b/400_xowa/src/gplx/xowa/dbs/Xodb_load_mgr_txt.java
index 50c747656..fd537550c 100644
--- a/400_xowa/src/gplx/xowa/dbs/Xodb_load_mgr_txt.java
+++ b/400_xowa/src/gplx/xowa/dbs/Xodb_load_mgr_txt.java
@@ -71,7 +71,7 @@ public class Xodb_load_mgr_txt implements Xodb_load_mgr {
Xow_ns ns = wiki.Ns_mgr().Ns_main();
int search_len = search.length;
byte match_tid = Xows_page__search.Match_tid_all;
- if (search_len > 0 && search[search_len - 1] == Byte_ascii.Asterisk) {
+ if (search_len > 0 && search[search_len - 1] == Byte_ascii.Star) {
search = Bry_.Mid(search, 0, search_len - 1);
match_tid = Xows_page__search.Match_tid_bgn;
}
diff --git a/400_xowa/src/gplx/xowa/dbs/Xodb_save_mgr_sql.java b/400_xowa/src/gplx/xowa/dbs/Xodb_save_mgr_sql.java
index 272bd7ff4..1e5d28e02 100644
--- a/400_xowa/src/gplx/xowa/dbs/Xodb_save_mgr_sql.java
+++ b/400_xowa/src/gplx/xowa/dbs/Xodb_save_mgr_sql.java
@@ -32,7 +32,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
int page_id = db_file.Tbl__cfg().Select_int_or("db", "page.id_next", -1);
if (page_id == -1) { // HACK: changed for tests; was dbs.qrys.Db_qry_sql.rdr_("SELECT (Max(page_id) + 1) AS max_page_id FROM page;")
// Db_rdr rdr = db_mgr.Core_data_mgr().Tbl__page().Conn().Stmt_new(Db_qry_sql.rdr_("SELECT (Max(page_id) + 1) AS max_page_id FROM page;")).Exec_select__rls_manual();
- Db_rdr rdr = db_mgr.Core_data_mgr().Tbl__page().Conn().Stmt_select(db_file.Tbl__page().Tbl_name(), String_.Ary(db_file.Tbl__page().Fld_page_id()), Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = db_mgr.Core_data_mgr().Tbl__page().Conn().Stmt_select(db_file.Tbl__page().Tbl_name(), String_.Ary(db_file.Tbl__page().Fld_page_id()), Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
int max_page_id = -1;
while (rdr.Move_next()) {
diff --git a/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java b/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
index 9acb8634f..20c55b20e 100644
--- a/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
+++ b/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
@@ -124,9 +124,7 @@ public class Xof_fsdb_itm implements Xof_file_itm {
public void Html_orig_url_(Io_url v) {html_orig_url = v;}
public void Html_img_wkr_(Js_img_wkr v) {html_img_wkr = v;}
public void Html_gallery_mgr_h_(int v) {html_gallery_mgr_h = v;}
- public void File_size_(long v) {
- this.file_size = v;
- }
+ public void File_size_(long v) {this.file_size = v;}
private void Orig_ttl_(byte[] v) {
this.orig_ttl = v;
this.orig_ttl_md5 = Xof_file_wkr_.Md5_fast(v);
diff --git a/400_xowa/src/gplx/xowa/files/bins/Xof_bin_mgr.java b/400_xowa/src/gplx/xowa/files/bins/Xof_bin_mgr.java
index c978536ca..156d3d4a0 100644
--- a/400_xowa/src/gplx/xowa/files/bins/Xof_bin_mgr.java
+++ b/400_xowa/src/gplx/xowa/files/bins/Xof_bin_mgr.java
@@ -26,6 +26,7 @@ public class Xof_bin_mgr {
private Xof_bin_wkr[] wkrs = Xof_bin_wkr_.Ary_empty; private int wkrs_len;
private final String_obj_ref resize_warning = String_obj_ref.null_(); private final Xof_img_size tmp_size = new Xof_img_size();
private final Io_download_fmt download_fmt;
+ private final Io_stream_rdr_wrapper rdr_wrapper = new Io_stream_rdr_wrapper();
public Xof_bin_mgr(Fsm_mnt_mgr mnt_mgr, Xow_repo_mgr repo_mgr, Xof_img_wkr_resize_img resize_wkr, Io_download_fmt download_fmt) {
this.mnt_mgr = mnt_mgr; this.repo_mgr = repo_mgr; this.download_fmt = download_fmt;
this.usr_dlg = Gfo_usr_dlg_.I;
@@ -53,17 +54,23 @@ public class Xof_bin_mgr {
}
return null;
}
- public boolean Find_to_url_as_bool(int exec_tid, Xof_fsdb_itm fsdb) {return Find_to_url(exec_tid, fsdb) != Io_url_.Empty;}
- private Io_url Find_to_url(int exec_tid, Xof_fsdb_itm fsdb) {
- Io_stream_rdr rdr = Find_as_rdr(exec_tid, fsdb);
- if (rdr == Io_stream_rdr_.Noop) return Io_url_.Empty;
- Io_url trg = fsdb.Html_view_url();
- fsdb.File_size_(rdr.Len());
- if (fsdb.File_resized()) return trg; // rdr is opened directly from trg; return its url; occurs when url goes through imageMagick / inkscape, or when thumb is already on disk;
- Io_stream_wtr_.Save_rdr(trg, rdr, download_fmt); // rdr is stream; either from http_wmf or fsdb; save to trg and return;
- return trg;
- }
+ public boolean Find_to_url_as_bool(int exec_tid, Xof_fsdb_itm fsdb) {return Find_as(Bool_.Y, rdr_wrapper, exec_tid, fsdb);}
+// public boolean Find_to_url_as_bool3(int exec_tid, Xof_fsdb_itm fsdb) {return Find_to_url(exec_tid, fsdb) != Io_url_.Empty;}
+// private Io_url Find_to_url(int exec_tid, Xof_fsdb_itm fsdb) {
+// Io_stream_rdr rdr = Find_as_rdr(exec_tid, fsdb);
+// if (rdr == Io_stream_rdr_.Noop) return Io_url_.Empty;
+// Io_url trg = fsdb.Html_view_url();
+// fsdb.File_size_(rdr.Len());
+// if (fsdb.File_resized()) return trg; // rdr is opened directly from trg; return its url; occurs when url goes through imageMagick / inkscape, or when thumb is already on disk;
+// Io_stream_wtr_.Save_rdr(trg, rdr, download_fmt); // rdr is stream; either from http_wmf or fsdb; save to trg and return;
+// return trg;
+// }
public Io_stream_rdr Find_as_rdr(int exec_tid, Xof_fsdb_itm fsdb) {
+ rdr_wrapper.Rdr_(Io_stream_rdr_.Noop);
+ Find_as(Bool_.N, rdr_wrapper, exec_tid, fsdb);
+ return rdr_wrapper.Rdr();
+ }
+ public Io_stream_rdr Find_as_rdr3(int exec_tid, Xof_fsdb_itm fsdb) {
Io_stream_rdr rv = Io_stream_rdr_.Noop;
Xof_repo_itm repo = repo_mgr.Repos_get_by_wiki(fsdb.Orig_repo_name()).Trg();
boolean file_is_orig = fsdb.File_is_orig();
@@ -107,6 +114,72 @@ public class Xof_bin_mgr {
}
return Io_stream_rdr_.Noop;
}
+ private boolean Find_as(boolean save_to_fsys, Io_stream_rdr_wrapper rdr_wrapper, int exec_tid, Xof_fsdb_itm fsdb) {
+ Xof_repo_itm repo = repo_mgr.Repos_get_by_wiki(fsdb.Orig_repo_name()).Trg();
+ boolean file_is_orig = fsdb.File_is_orig();
+ if (file_is_orig || exec_tid == Xof_exec_tid.Tid_viewer_app) { // orig or viewer_app; note that viewer_app always return orig
+ Io_url trg = url_bldr.To_url_trg(repo, fsdb, Bool_.Y);
+ fsdb.Html_view_url_(trg);
+ for (int i = 0; i < wkrs_len; i++) {
+ Xof_bin_wkr wkr = wkrs[i];
+ boolean found = Get_bin(Bool_.N, fsdb.Html_w(), trg, save_to_fsys, rdr_wrapper, fsdb, wkr);
+ if (found) // orig found; return it;
+ return Set_found(save_to_fsys, fsdb, trg, rdr_wrapper);
+ }
+ }
+ else { // thumb
+ Io_url trg = url_bldr.To_url_trg(repo, fsdb, Bool_.N);
+ fsdb.Html_view_url_(trg);
+ for (int i = 0; i < wkrs_len; i++) {
+ Xof_bin_wkr wkr = wkrs[i];
+ boolean found = Get_bin(Bool_.Y, fsdb.Html_w(), trg, save_to_fsys, rdr_wrapper, fsdb, wkr);
+ if (found) // thumb found; return it;
+ return Set_found(save_to_fsys, fsdb, trg, rdr_wrapper);
+ if (fsdb.Orig_ext().Id_is_video()) continue; // item is video; don't download orig as imageMagick can't thumbnail it; DATE:2015-06-16
+ if (!wkr.Resize_allowed()) continue; // resize code below; exit early if wkr doesn't allow resize
+ Io_url orig = url_bldr.To_url_trg(repo, fsdb, Bool_.Y); // get orig url
+ found = Get_bin(Bool_.N, fsdb.Orig_w(), orig, Bool_.Y, rdr_wrapper, fsdb, wkr); // get orig; note: save_to_fsys set to true b/c imageMagick will need actual file to convert
+ if (!found) {
+ usr_dlg.Log_direct(String_.Format("bin_mgr:thumb not found; wkr={0} ttl={1} w={2}", wkr.Key(), fsdb.Orig_ttl(), fsdb.Lnki_w()));
+ continue; // orig not found; skip rest since resize can't happen;
+ }
+ boolean resized = Resize(exec_tid, fsdb, file_is_orig, orig, trg);
+ if (!resized) continue;
+ if (save_to_fsys) { // noop; already saved to trg
+ }
+ else {
+ Io_stream_rdr rdr = Io_stream_rdr_.file_(trg); // return stream of resized url; (result of imageMagick / inkscape)
+ rdr.Open();
+ rdr_wrapper.Rdr_(rdr);
+ }
+ return Set_found(save_to_fsys, fsdb, trg, rdr_wrapper);
+ }
+ }
+ return false;
+ }
+ private boolean Get_bin(boolean is_thumb, int w, Io_url trg_url, boolean save_to_fsys, Io_stream_rdr_wrapper rdr_wrapper, Xof_fsdb_itm fsdb, Xof_bin_wkr wkr) {
+ boolean found = false;
+ if (save_to_fsys)
+ found = wkr.Get_to_fsys(fsdb, is_thumb, w, trg_url);
+ else {
+ Io_stream_rdr rdr = wkr.Get_as_rdr(fsdb, is_thumb, w);
+ if (rdr != Io_stream_rdr_.Noop) {
+ found = true;
+ rdr_wrapper.Rdr_(rdr);
+ }
+ }
+ return found;
+ }
+ private boolean Set_found(boolean save_to_fsys, Xof_fsdb_itm fsdb, Io_url fsys_url, Io_stream_rdr_wrapper rdr_wrapper) {
+ long fsdb_len = -1;
+ if (save_to_fsys)
+ fsdb_len = Io_mgr.I.QueryFil(fsys_url).Size();
+ else
+ fsdb_len = rdr_wrapper.Rdr().Len();
+ fsdb.File_size_(fsdb_len);
+ fsdb.File_exists_y_();
+ return true;
+ }
private boolean Resize(int exec_tid, Xof_fsdb_itm itm, boolean file_is_orig, Io_url src, Io_url trg) {
tmp_size.Html_size_calc(exec_tid, itm.Lnki_w(), itm.Lnki_h(), itm.Lnki_type(), mnt_mgr.Patch_upright(), itm.Lnki_upright(), itm.Orig_ext().Id(), itm.Orig_w(), itm.Orig_h(), Xof_img_size.Thumb_width_img);
boolean rv = resizer.Resize_exec(src, trg, tmp_size.Html_w(), tmp_size.Html_h(), itm.Orig_ext().Id(), resize_warning);
@@ -114,3 +187,6 @@ public class Xof_bin_mgr {
return rv;
}
}
+class Io_stream_rdr_wrapper {
+ public Io_stream_rdr Rdr() {return rdr;} public void Rdr_(Io_stream_rdr v) {rdr = v;} private Io_stream_rdr rdr;
+}
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
index ee292451e..bf129088c 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
@@ -73,7 +73,7 @@ class Xofc_dir_tbl implements RlsAble {
}
public void Select_all(List_adp list) {
list.Clear();
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
while (rdr.Move_next())
list.Add(new_itm(rdr));
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
index 2da8d04e8..313124131 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
@@ -122,7 +122,7 @@ class Xofc_fil_tbl implements RlsAble {
}
public void Select_all(Bry_bfr fil_key_bldr, Ordered_hash hash) {
hash.Clear();
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
Xofc_fil_itm fil_itm = new_itm(rdr);
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
index 9b21a187b..ee0f62c50 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
@@ -158,7 +158,7 @@ public class Xou_cache_mgr {
}
private Io_url Calc_url(Xou_cache_itm cache) {
byte[] wiki_domain = Xow_domain_abrv_xo_.To_itm(cache.Lnki_wiki_abrv()).Domain_bry();
- Xow_wiki wiki = wiki_mgr.Get_by_key_or_make_2(wiki_domain); if (wiki == null) return Io_url_.Empty; // wiki is not available; should only happen in read-only mode; DATE:2015-05-23
+ Xow_wiki wiki = wiki_mgr.Get_by_key_or_make_init_y(wiki_domain); if (wiki == null) return Io_url_.Empty; // wiki is not available; should only happen in read-only mode; DATE:2015-05-23
Xof_repo_itm trg_repo = wiki.File__repo_mgr().Get_trg_by_id_or_null(cache.Orig_repo_id(), cache.Lnki_ttl(), Bry_.Empty);
if (trg_repo == null) return Io_url_.Empty;
byte[] orig_ttl = cache.Orig_ttl();
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
index e16bb402f..01a3a39b7 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
@@ -90,7 +90,7 @@ public class Xou_cache_tbl implements RlsAble {
}
public void Select_all(Bry_bfr fil_key_bldr, Ordered_hash hash) {
hash.Clear();
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
Xou_cache_itm itm = new_itm(rdr);
@@ -112,7 +112,7 @@ public class Xou_cache_tbl implements RlsAble {
itm.Db_state_(Db_cmd_mode.Tid_ignore);
} catch (Exception e) {stmt_bldr.Rls(); throw Err_.err_(e, Err_.Message_gplx(e));}
}
- @gplx.Internal protected Db_rdr Select_all_for_test() {return conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_manual();}
+ @gplx.Internal protected Db_rdr Select_all_for_test() {return conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_manual();}
private void Db_save_crt(Db_stmt stmt, Xou_cache_itm itm, boolean insert) {
if (insert) {
stmt.Val_bry_as_str (fld_lnki_wiki_abrv , itm.Lnki_wiki_abrv())
diff --git a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_itm.java b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_itm.java
index 916c334f9..aea269868 100644
--- a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_itm.java
+++ b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_itm.java
@@ -41,4 +41,16 @@ public class Xof_orig_itm {
public static final byte Repo_comm = 0, Repo_wiki = 1, Repo_null = Byte_.Max_value_127; // SERIALIZED: "wiki_orig.orig_repo"
public static final Xof_orig_itm Null = null;
public static final int File_len_null = -1; // file_len used for filters (EX: don't download ogg > 1 MB)
+ public static String dump(Xof_orig_itm itm) {
+ if (itm == null)
+ return "NULL";
+ Bry_bfr bfr = Bry_bfr.new_(255);
+ bfr.Add_str_a7("repo").Add_byte_eq().Add_int_variable((int)itm.repo).Add_byte_semic();
+ bfr.Add_str_a7("ttl").Add_byte_eq().Add(itm.ttl).Add_byte_semic();
+ bfr.Add_str_a7("ext_id").Add_byte_eq().Add_int_variable(itm.ext_id).Add_byte_semic();
+ bfr.Add_str_a7("w").Add_byte_eq().Add_int_variable(itm.w).Add_byte_semic();
+ bfr.Add_str_a7("h").Add_byte_eq().Add_int_variable(itm.h).Add_byte_semic();
+ bfr.Add_str_a7("redirect").Add_byte_eq().Add(itm.redirect).Add_byte_semic();
+ return bfr.Xto_str_and_clear();
+ }
}
diff --git a/400_xowa/src/gplx/xowa/gui/menus/Xog_menu_mnu_src.java b/400_xowa/src/gplx/xowa/gui/menus/Xog_menu_mnu_src.java
index 8f7ca5f74..7a012b1d0 100644
--- a/400_xowa/src/gplx/xowa/gui/menus/Xog_menu_mnu_src.java
+++ b/400_xowa/src/gplx/xowa/gui/menus/Xog_menu_mnu_src.java
@@ -25,7 +25,7 @@ class Xog_menu_mgr_src {
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_cur)
. Add_spr()
. Add_btn(Xog_cmd_itm_.Key_gui_page_view_save_as)
-// . Add_btn(Xog_cmd_itm_.Key_gui_page_view_print)
+ . Add_btn(Xog_cmd_itm_.Key_gui_page_view_print)
. Add_btn(Xog_cmd_itm_.Key_app_exit)
. Add_grp_end()
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_edit)
diff --git a/400_xowa/src/gplx/xowa/gui/urls/Xog_url_wkr.java b/400_xowa/src/gplx/xowa/gui/urls/Xog_url_wkr.java
index cf677561b..6049fe1cb 100644
--- a/400_xowa/src/gplx/xowa/gui/urls/Xog_url_wkr.java
+++ b/400_xowa/src/gplx/xowa/gui/urls/Xog_url_wkr.java
@@ -75,8 +75,8 @@ public class Xog_url_wkr {
Io_url href_url = Io_url_.http_any_(String_.new_u8(Xoa_app_.Utl__encoder_mgr().Http_url().Decode(href_bry)), Op_sys.Cur().Tid_is_wnt());
gplx.gfui.Gfui_html html_box = win.Active_html_box();
String xowa_ttl = wiki.Gui_mgr().Cfg_browser().Content_editable()
- ? html_box.Html_active_atr_get_str(gplx.xowa.html.Xoh_consts.Atr_xowa_title_str, null)
- : Xoh_dom_.Title_by_href(href_bry, Bry_.new_u8(html_box.Html_doc_html()));
+ ? html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_active_for_editable_mode, gplx.xowa.html.Xoh_consts.Atr_xowa_title_str, null)
+ : Xoh_dom_.Title_by_href(href_bry, Bry_.new_u8(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__root_html_get)));
byte[] lnki_ttl = Xoa_app_.Utl__encoder_mgr().Http_url().Decode(Xoa_ttl.Replace_spaces(Bry_.new_u8(xowa_ttl)));
Xof_fsdb_itm fsdb = Xof_orig_file_downloader.Make_fsdb(wiki, lnki_ttl, img_size, url_bldr);
if (!Io_mgr.I.ExistsFil(href_url)) {
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm.java b/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm.java
index 3b4325a73..5b4778b58 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm.java
@@ -21,6 +21,8 @@ import gplx.gfui.*; import gplx.xowa.gui.menus.*; import gplx.xowa.gui.menus.dom
import gplx.html.*; import gplx.xowa.html.modules.*; import gplx.xowa.pages.*;
public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
private Xoae_app app; private final Object thread_lock = new Object();
+ private final String_obj_ref scroll_top = String_obj_ref.null_(), node_path = String_obj_ref.null_();
+ protected Xog_html_itm() {} // TEST: for prefs_mgr
public Xog_html_itm(Xog_tab_itm owner_tab) {
this.owner_tab = owner_tab;
app = owner_tab.Tab_mgr().Win().App();
@@ -45,10 +47,10 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
this.html_box = html_box;
html_box.Html_js_cbks_add("xowa_exec", js_cbk);
}
- public String Html_selected_get_src_or_empty() {return html_box.Html_doc_selected_get_src_or_empty();}
- public String Html_selected_get_href_or_text() {return Html_extract_text(html_box.Html_doc_selected_get_href_or_text());}
- public String Html_selected_get_text_or_href() {return Html_extract_text(html_box.Html_doc_selected_get_text_or_href());}
- public String Html_selected_get_active_or_selection() {return Html_extract_text(html_box.Html_doc_selected_get_active_or_selection());}
+ public String Html_selected_get_src_or_empty() {return html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_src_or_empty);}
+ public String Html_selected_get_href_or_text() {return Html_extract_text(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_href_or_text));}
+ public String Html_selected_get_text_or_href() {return Html_extract_text(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_text_or_href));}
+ public String Html_selected_get_active_or_selection() {return Html_extract_text(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_active_or_selection));}
private String Html_extract_text(String v) {
Xoae_page page = owner_tab.Page();
String site = owner_tab.Wiki().Domain_str();
@@ -59,8 +61,8 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
byte view_mode = owner_tab.View_mode();
byte[] html_src = page.Wikie().Html_mgr().Page_wtr_mgr().Gen(page, view_mode); // NOTE: must use wiki of page, not of owner tab; DATE:2015-03-05
Html_src_(page, html_src);
- if (view_mode == Xopg_view_mode.Tid_read){ // used only for Xosrh test; DATE:2014-01-29
- html_box.Html_doc_body_focus(); // NOTE: only focus if read so up / down will scroll box; edit / html should focus edit-box; DATE:2014-06-05
+ if (view_mode == Xopg_view_mode.Tid_read){ // used only for Xosrh test; DATE:2014-01-29
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Win__focus_body); // NOTE: only focus if read so up / down will scroll box; edit / html should focus edit-box; DATE:2014-06-05
page.Root().Data_htm_(html_src);
}
}
@@ -89,8 +91,8 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
trg_itm.js_cbk = src_js_cbk;
}
public byte[] Get_elem_value_for_edit_box_as_bry() {return Bry_.new_u8(this.Get_elem_value_for_edit_box());}
- public String Get_elem_value_for_edit_box() {return html_box.Html_elem_atr_get_str(Elem_id__xowa_edit_data_box, Gfui_html.Atr_value);}
- public String Get_elem_value(String elem_id) {return html_box.Html_elem_atr_get_str(elem_id, Gfui_html.Atr_value);}
+ public String Get_elem_value_for_edit_box() {return Html_elem_atr_get_str(Elem_id__xowa_edit_data_box, Gfui_html.Atr_value);}
+ public String Get_elem_value(String elem_id) {return Html_elem_atr_get_str(elem_id, Gfui_html.Atr_value);}
public void Html_img_update(String elem_id, String elem_src, int elem_width, int elem_height) {
GfoMsg m = GfoMsg_.new_cast_(Invk_html_img_update).Add("elem_id", elem_id).Add("elem_src", elem_src).Add("elem_width", elem_width).Add("elem_height", elem_height);
GfoInvkAble_.InvkCmd_msg(cmd_sync, Invk_html_img_update, m);
@@ -99,16 +101,20 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
GfoMsg m = GfoMsg_.new_cast_(Invk_html_elem_delete).Add("elem_id", elem_id);
GfoInvkAble_.InvkCmd_msg(cmd_sync, Invk_html_elem_delete, m);
}
+ @gplx.Virtual public String Html_elem_atr_get_str(String id, String atr_key) {return html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__atr_get_as_obj, id, atr_key);}
+ @gplx.Virtual public boolean Html_elem_atr_get_bool(String id, String atr_key) {return Bool_.parse_(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__atr_get_to_str, id, atr_key));}
+
+
public void Html_atr_set(String elem_id, String atr_key, String atr_val) {
synchronized (thread_lock) { // needed for Special:Search and async cancel; DATE:2015-05-02
GfoMsg m = GfoMsg_.new_cast_(Invk_html_elem_atr_set).Add("elem_id", elem_id).Add("atr_key", atr_key).Add("atr_val", atr_val);
GfoInvkAble_.InvkCmd_msg(cmd_sync, Invk_html_elem_atr_set, m);
}
}
- public void Html_redlink(String html_uid) {Html_elem_atr_set_append(html_uid, "class", gplx.xowa.html.lnkis.Xoh_redlink_utl.New_str);}
- public void Html_elem_atr_set_append(String elem_id, String atr_key, String atr_val) {
- GfoMsg m = GfoMsg_.new_cast_(Invk_html_elem_atr_set_append).Add("elem_id", elem_id).Add("atr_key", atr_key).Add("atr_val", atr_val);
- GfoInvkAble_.InvkCmd_msg(cmd_sync, Invk_html_elem_atr_set_append, m);
+ public void Html_redlink(String html_uid) {Html_doc_atr_append_or_set(html_uid, "class", gplx.xowa.html.lnkis.Xoh_redlink_utl.New_str);}
+ private void Html_doc_atr_append_or_set(String elem_id, String atr_key, String atr_val) {
+ GfoMsg m = GfoMsg_.new_cast_(Invk_html_doc_atr_append_or_set).Add("elem_id", elem_id).Add("atr_key", atr_key).Add("atr_val", atr_val);
+ GfoInvkAble_.InvkCmd_msg(cmd_sync, Invk_html_doc_atr_append_or_set, m);
}
public void Html_elem_replace_html(String id, String html) {
synchronized (thread_lock) { // needed for Special:Search and async; DATE:2015-04-23
@@ -148,22 +154,24 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
String html_doc_pos = owner_tab.Page().Html_data().Bmk_pos();
if (html_doc_pos == null) {
String auto_focus_id = app.Gui_mgr().Html_mgr().Auto_focus_id();
- if (String_.Len_eq_0(auto_focus_id)) return; // don't focus anything
- if (String_.Eq(auto_focus_id, " first_anchor")) // NOTE: HTML 4/5 do not allow space as id; XOWA using space here to create a unique_key that will never collide with any id
- html_box.Html_doc_body_focus(); // NOTE: will focus body if content-editable, or first_anchor otherwise
+ if (String_.Len_eq_0(auto_focus_id)) return; // don't focus anything
+ if (String_.Eq(auto_focus_id, " first_anchor")) // NOTE: HTML 4/5 do not allow space as id; XOWA using space here to create a unique_key that will never collide with any id
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Win__focus_body); // NOTE: will focus body if content-editable, else first_anchor
else
- html_box.Html_elem_focus(auto_focus_id);
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__elem_focus, auto_focus_id);
}
else if (String_.Eq(html_doc_pos, gplx.xowa.gui.history.Xog_history_itm.Html_doc_pos_toc)) // NOTE: special case to handle TOC clicks; DATE:2013-07-17
Scroll_page_by_id("toc");
- else
- html_box.Html_window_vpos_(html_doc_pos);
+ else {
+ Html_window_vpos_parse(html_doc_pos, scroll_top, node_path);
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Win__vpos_set, node_path.Val(), scroll_top.Val());
+ }
}
public void Scroll_page_by_id_gui(String id) {GfoInvkAble_.InvkCmd_val(cmd_async, Invk_scroll_page_by_id, id);}
private boolean Scroll_page_by_id(String id) {
return (id == null)
? false
- : html_box.Html_elem_scroll_into_view(Xoa_app_.Utl__encoder_mgr().Id().Encode_str(id));
+ : html_box.Html_js_eval_proc_as_bool(Xog_js_procs.Win__scroll_elem_into_view, Xoa_app_.Utl__encoder_mgr().Id().Encode_str(id));
}
public void Js_enabled_(boolean v) {
html_box.Html_js_enabled_(v);
@@ -179,17 +187,17 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
kit.Set_mnu_popup(html_box, popup_mnu.Under_mnu());
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
- if (ctx.Match(k, Invk_html_img_update)) html_box.Html_elem_img_update(m.ReadStr("elem_id"), m.ReadStr("elem_src"), m.ReadInt("elem_width"), m.ReadInt("elem_height"));
- else if (ctx.Match(k, Invk_html_elem_atr_set)) html_box.Html_elem_atr_set(m.ReadStr("elem_id"), m.ReadStr("atr_key"), m.ReadStr("atr_val"));
- else if (ctx.Match(k, Invk_html_elem_atr_set_append)) html_box.Html_elem_atr_set_append(m.ReadStr("elem_id"), m.ReadStr("atr_key"), m.ReadStr("atr_val"));
- else if (ctx.Match(k, Invk_html_elem_delete)) html_box.Html_elem_delete(m.ReadStr("elem_id"));
- else if (ctx.Match(k, Invk_html_elem_replace_html)) html_box.Html_elem_replace_html(m.ReadStr("id"), m.ReadStr("html"));
- else if (ctx.Match(k, Invk_html_elem_append_above)) html_box.Html_elem_append_above(m.ReadStr("id"), m.ReadStr("html"));
- else if (ctx.Match(k, Invk_html_gallery_packed_exec)) html_box.Html_gallery_packed_exec();
+ if (ctx.Match(k, Invk_html_img_update)) html_box.Html_js_eval_proc_as_bool (Xog_js_procs.Doc__elem_img_update , m.ReadStr("elem_id"), m.ReadStr("elem_src"), m.ReadInt("elem_width"), m.ReadInt("elem_height"));
+ else if (ctx.Match(k, Invk_html_elem_atr_set)) html_box.Html_js_eval_proc_as_str (Xog_js_procs.Doc__atr_set , m.ReadStr("elem_id"), m.ReadStr("atr_key"), m.ReadStr("atr_val"));
+ else if (ctx.Match(k, Invk_html_doc_atr_append_or_set)) html_box.Html_js_eval_proc_as_str (Xog_js_procs.Doc__atr_append_or_set , m.ReadStr("elem_id"), m.ReadStr("atr_key"), m.ReadStr("atr_val"));
+ else if (ctx.Match(k, Invk_html_elem_delete)) html_box.Html_js_eval_proc_as_bool (Xog_js_procs.Doc__elem_delete , m.ReadStr("elem_id"));
+ else if (ctx.Match(k, Invk_html_elem_replace_html)) html_box.Html_js_eval_proc_as_str (Xog_js_procs.Doc__elem_replace_html , m.ReadStr("id"), m.ReadStr("html"));
+ else if (ctx.Match(k, Invk_html_elem_append_above)) html_box.Html_js_eval_proc_as_str (Xog_js_procs.Doc__elem_append_above , m.ReadStr("id"), m.ReadStr("html"));
+ else if (ctx.Match(k, Invk_html_gallery_packed_exec)) html_box.Html_js_eval_proc_as_str (Xog_js_procs.Xtn__gallery_packed_exec);
else if (ctx.Match(k, Invk_html_popups_bind_hover_to_doc)) html_box.Html_js_eval_script("xowa_popups_bind_doc();");
else if (ctx.Match(k, Invk_scroll_page_by_bmk)) Scroll_page_by_bmk();
else if (ctx.Match(k, Invk_scroll_page_by_id)) Scroll_page_by_id(m.ReadStr("v"));
- else if (ctx.Match(k, Invk_html_elem_focus)) html_box.Html_elem_focus(m.ReadStr("v"));
+ else if (ctx.Match(k, Invk_html_elem_focus)) html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__elem_focus, m.ReadStr("v"));
else if (ctx.Match(k, GfuiElemKeys.Evt_menu_detected)) When_menu_detected();
else return GfoInvkAble_.Rv_unhandled;
return this;
@@ -197,7 +205,7 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
private static final String
Invk_html_gallery_packed_exec = "html_gallery_packed_exec", Invk_html_popups_bind_hover_to_doc = "html_popups_bind_hover_to_doc"
, Invk_html_img_update = "html_img_update", Invk_html_elem_atr_set = "html_elem_atr_set"
- , Invk_html_elem_atr_set_append = "html_elem_atr_set_append", Invk_html_elem_delete = "html_elem_delete", Invk_html_elem_replace_html = "html_elem_replace_html", Invk_html_elem_append_above = "html_elem_append_above"
+ , Invk_html_doc_atr_append_or_set = "html_doc_atr_append_or_set", Invk_html_elem_delete = "html_elem_delete", Invk_html_elem_replace_html = "html_elem_replace_html", Invk_html_elem_append_above = "html_elem_append_above"
, Invk_scroll_page_by_bmk = "scroll_page_by_bmk", Invk_scroll_page_by_id = "scroll_page_by_id"
;
public static final String
@@ -206,6 +214,13 @@ public class Xog_html_itm implements Xog_js_wkr, GfoInvkAble, GfoEvObj {
, Elem_id__first_heading = "firstHeading"
, Invk_html_elem_focus = "html_elem_focus"
;
+ public static void Html_window_vpos_parse(String v, String_obj_ref scroll_top, String_obj_ref node_path) {
+ int pipe_pos = String_.FindFwd(v, "|"); if (pipe_pos == String_.Find_none) return; // if elem_get_path returns invalid value, don't fail; DATE:2014-04-05
+ scroll_top.Val_(String_.Mid(v, 0, pipe_pos));
+ String node_path_val = String_.Mid(v, pipe_pos + 1, String_.Len(v));
+ node_path_val = "'" + String_.Replace(node_path_val, ",", "','") + "'";
+ node_path.Val_(node_path_val);
+ }
}
class Xog_html_itm__href_extractor {
private static final byte Text_tid_none = 0, Text_tid_text = 1, Text_tid_href = 2;
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm_tst.java b/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm_tst.java
index f554b019f..ec1fe3e01 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm_tst.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_html_itm_tst.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.gui.views; import gplx.*; import gplx.xowa.*; import gplx.xowa.gui.*;
import org.junit.*;
+import gplx.core.primitives.*;
public class Xog_html_itm_tst {
@Before public void init() {fxt.Clear();} private Xog_html_itm_fxt fxt = new Xog_html_itm_fxt();
@Test public void Extract_href__text() {
@@ -34,6 +35,10 @@ public class Xog_html_itm_tst {
fxt.Test_extract_href("2|/wiki/Page_2" , "en.wikipedia.org/wiki/Page_2");
fxt.Test_extract_href("2|#anchor" , "en.wikipedia.org/wiki/Page_0#anchor");
}
+ @Test public void Html_window_vpos_parse() {
+ fxt.Test_Html_window_vpos_parse("0|0,1,2", "0", "'0','1','2'");
+ fxt.Test_Html_window_vpos_parse("org.eclipse.swt.SWTException: Permission denied for to get property Selection.rangeCount", null, null); // check that invalid path doesn't fail; DATE:2014-04-05
+ }
}
class Xog_html_itm_fxt {
public void Clear() {
@@ -45,4 +50,11 @@ class Xog_html_itm_fxt {
public void Test_extract_href(String text_str, String expd) {
Tfds.Eq(expd, Xog_html_itm__href_extractor.Html_extract_text(cur_wiki, cur_page, text_str));
}
+ private String_obj_ref scroll_top = String_obj_ref.null_(), node_path = String_obj_ref.null_();
+ public void Test_Html_window_vpos_parse(String raw, String expd_scroll_top, String expd_node_path) {
+ scroll_top.Val_null_(); node_path.Val_null_();
+ Xog_html_itm.Html_window_vpos_parse(raw, scroll_top, node_path);
+ Tfds.Eq(expd_scroll_top, scroll_top.Val(), expd_scroll_top);
+ Tfds.Eq(expd_node_path, node_path.Val(), expd_node_path);
+ }
}
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_html_js_cbk.java b/400_xowa/src/gplx/xowa/gui/views/Xog_html_js_cbk.java
index dc27b6798..b45923c2b 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_html_js_cbk.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_html_js_cbk.java
@@ -91,7 +91,7 @@ public class Xog_html_js_cbk implements GfoInvkAble {
private String[][] Get_titles_meta(GfoMsg m) {
Xowe_wiki wiki = html_itm.Owner_tab().Wiki();
try {
- byte[][] ttls = Bry_.Split(Bry_.new_u8((String)m.ReadValAt(0)), Byte_ascii.NewLine);
+ byte[][] ttls = Bry_.Split(Bry_.new_u8((String)m.ReadValAt(0)), Byte_ascii.Nl);
int ttls_len = ttls.length;
String[][] rv = new String[ttls_len][];
for (int i = 0; i < ttls_len; i++) {
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_js_procs.java b/400_xowa/src/gplx/xowa/gui/views/Xog_js_procs.java
new file mode 100644
index 000000000..0c3db1111
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_js_procs.java
@@ -0,0 +1,46 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.gui.views; import gplx.*; import gplx.xowa.*; import gplx.xowa.gui.*;
+public class Xog_js_procs {
+ public static final String
+ Win__focus_body = "xowa.js.win.focus_body"
+ , Win__vpos_get = "xowa.js.win.vpos_get"
+ , Win__vpos_set = "xowa.js.win.vpos_set"
+ , Win__find_in_hdoc = "xowa.js.win.find_in_hdoc"
+ , Win__find_in_textarea = "xowa.js.win.find_in_textarea"
+ , Win__scroll_elem_into_view = "xowa.js.win.scroll_elem_into_view"
+ , Win__print_preview = "xowa.js.win.print_preview"
+ , Doc__root_html_get = "xowa.js.doc.root_html_get"
+ , Doc__atr_get_as_obj = "xowa.js.doc.atr_get_as_obj"
+ , Doc__atr_get_to_str = "xowa.js.doc.atr_get_to_str"
+ , Doc__atr_set = "xowa.js.doc.atr_set"
+ , Doc__atr_append_or_set = "xowa.js.doc.atr_append_or_set"
+ , Doc__elem_focus = "xowa.js.doc.elem_focus"
+ , Doc__elem_delete = "xowa.js.doc.elem_delete"
+ , Doc__elem_append_above = "xowa.js.doc.elem_append_above"
+ , Doc__elem_replace_html = "xowa.js.doc.elem_replace_html"
+ , Doc__elem_img_update = "xowa.js.doc.elem_img_update"
+ , Selection__get_text_or_href = "xowa.js.selection.get_text_or_href"
+ , Selection__get_href_or_text = "xowa.js.selection.get_href_or_text"
+ , Selection__get_active_or_selection = "xowa.js.selection.get_active_or_selection"
+ , Selection__get_src_or_empty = "xowa.js.selection.get_src_or_empty"
+ , Selection__get_active_for_editable_mode = "xowa.js.selection.get_active_for_editable_mode"
+ , Selection__toggle_focus_for_anchor = "xowa.js.selection.toggle_focus_for_anchor"
+ , Xtn__gallery_packed_exec = "xowa.js.xtn.gallery_packed_exec"
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_edit_mgr.java b/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_edit_mgr.java
index 624785722..8651cb7a3 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_edit_mgr.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_edit_mgr.java
@@ -93,7 +93,7 @@ public class Xog_tab_itm_edit_mgr {
public static void Focus(Xog_win_itm win, String elem_focus_id) {
Gfui_html html_box = win.Active_html_box();
html_box.Focus();
- html_box.Html_elem_focus(elem_focus_id);
+ html_box.Html_js_eval_proc_as_str(Xog_js_procs.Doc__elem_focus, elem_focus_id);
}
public static void Debug(Xog_win_itm win, byte view_tid) {
Xog_tab_itm tab = win.Tab_mgr().Active_tab(); Xoae_page page = tab.Page();
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_read_mgr.java b/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_read_mgr.java
index e280d547d..2556c0e3e 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_read_mgr.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_tab_itm_read_mgr.java
@@ -28,7 +28,7 @@ public class Xog_tab_itm_read_mgr {
Xoae_page cur_page = tab.Page(); Xog_html_itm html_itm = tab.Html_itm(); Gfui_html html_box = html_itm.Html_box();
Xog_win_itm win = tab.Tab_mgr().Win();
if (cur_page != null && !new_page_is_same) { // if new_page_is_same, don't update DocPos; will "lose" current position
- cur_page.Html_data().Bmk_pos_(html_box.Html_window_vpos());
+ cur_page.Html_data().Bmk_pos_(html_box.Html_js_eval_proc_as_str(Xog_js_procs.Win__vpos_get));
tab.History_mgr().Update_html_doc_pos(cur_page, history_nav_type); // HACK: old_page is already in stack, but need to update its hdoc_pos
}
win.Usr_dlg().Prog_none("", "", "locating images");
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm.java b/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm.java
index 4447d04c4..1e3a5c023 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm.java
@@ -111,7 +111,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
private void Win__link_click() { // NOTE: only applies when content_editable=y; if n, then link_click will be handled by SwtBrowser location changed (Win__link_clicked)
Xog_tab_itm tab = tab_mgr.Active_tab(); Xowe_wiki wiki = tab.Wiki();
if (wiki.Gui_mgr().Cfg_browser().Content_editable()) {
- String href = tab.Html_itm().Html_box().Html_active_atr_get_str(Gfui_html.Atr_href, null);
+ String href = tab.Html_itm().Html_box().Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_active_for_editable_mode, Gfui_html.Atr_href, null);
if (String_.Len_eq_0(href)) return; // NOTE: href can be null for images; EX: [[File:Loudspeaker.svg|11px|link=|alt=play]]; link= basically means don't link to image
Page__navigate_by_internal_href(href, tab);
}
@@ -136,7 +136,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
kit.Kit_term(); // NOTE: Kit_term calls shell.close() which in turn is hooked up to app.Term_cbk() event; DATE:2014-09-09
}
private void App__eval(String s) {
- String snippet = this.Active_html_box().Html_elem_atr_get_str(s, Gfui_html.Atr_innerHTML);
+ String snippet = this.Active_html_itm().Html_elem_atr_get_str(s, Gfui_html.Atr_innerHTML);
app.Gfs_mgr().Run_str(snippet);
}
private static String Parse_evt_location_changing(String v) { // EX: about:blank#anchor -> anchor
@@ -196,7 +196,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
}
public void Page__refresh() {
Xog_tab_itm tab = tab_mgr.Active_tab(); Xoae_page page = tab.Page(); Xog_html_itm html_itm = tab.Html_itm();
- page.Html_data().Bmk_pos_(html_itm.Html_box().Html_window_vpos());
+ page.Html_data().Bmk_pos_(html_itm.Html_box().Html_js_eval_proc_as_str(Xog_js_procs.Win__vpos_get));
html_itm.Show(page);
if (page.Url().Anchor_str() == null)
html_itm.Scroll_page_by_bmk_gui();
diff --git a/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm__prog_href_mgr.java b/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm__prog_href_mgr.java
index b56c198cd..0484841d2 100644
--- a/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm__prog_href_mgr.java
+++ b/400_xowa/src/gplx/xowa/gui/views/Xog_win_itm__prog_href_mgr.java
@@ -21,7 +21,7 @@ public class Xog_win_itm__prog_href_mgr {
private static Xoh_href tmp_href = new Xoh_href();
private static Bry_bfr tmp_bfr = Bry_bfr.reset_(512);
public static void Print(Xog_win_itm win) { // PURPOSE: print href in prog box when in content editable mode
- String href = win.Active_html_box().Html_active_atr_get_str(Gfui_html.Atr_href, "");// get selected href from html_box
+ String href = win.Active_html_box().Html_js_eval_proc_as_str(Xog_js_procs.Selection__get_active_for_editable_mode, Gfui_html.Atr_href, "");// get selected href from html_box
href = Xoa_app_.Utl__encoder_mgr().Href().Decode_str(href); // remove url encodings
if (!String_.Eq(href, win.Prog_box().Text()))
win.Usr_dlg().Prog_direct(href);
diff --git a/400_xowa/src/gplx/xowa/html/Xoh_html_wtr.java b/400_xowa/src/gplx/xowa/html/Xoh_html_wtr.java
index ae335850d..271302db4 100644
--- a/400_xowa/src/gplx/xowa/html/Xoh_html_wtr.java
+++ b/400_xowa/src/gplx/xowa/html/Xoh_html_wtr.java
@@ -30,7 +30,7 @@ public class Xoh_html_wtr {
lnke_wtr = new Xoh_lnke_wtr(wiki);
}
public void Init_by_wiki(Xowe_wiki wiki) {
- cfg.Toc_show_(true).Lnki_title_(true).Lnki_visited_(true).Lnki_id_(true); // NOTE: set during Init_by_wiki, b/c all tests assume these are false
+ cfg.Toc__show_(Bool_.Y).Lnki__title_(true).Lnki_visited_y_().Lnki__id_y_(); // NOTE: set during Init_by_wiki, b/c all tests assume these are false
ref_wtr.Init_by_wiki(wiki);
}
public Xow_html_mgr Html_mgr() {return html_mgr;} private Xow_html_mgr html_mgr;
@@ -46,6 +46,8 @@ public class Xoh_html_wtr {
page.Slink_list().Clear(); // HACK: always clear langs; necessary for reload
lnki_wtr.Init_by_page(ctx, hctx, src, ctx.Cur_page());
Write_tkn(bfr, ctx, hctx, src, null, -1, root);
+ if (cfg.Hdr__div_wrapper())
+ bfr.Add(Tag_hdr__div_wrapper_end);
}
finally {
page.Category_list_(page.Html_data().Ctgs_to_ary());
@@ -107,14 +109,19 @@ public class Xoh_html_wtr {
private static final byte[] Bry_hdr_bgn = Bry_.new_a7("
+ html_wtr.Cfg().Toc__show_(Bool_.Y); // needed for hdr to show
html_wtr.Write_all(bfr, ctx, hctx, html_bry, root);
Tfds.Eq(expd, bfr.Xto_str_and_clear());
}
diff --git a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr__basic.java b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr__basic.java
index e3779abe6..833a2d9e5 100644
--- a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr__basic.java
+++ b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr__basic.java
@@ -106,7 +106,7 @@ public class Xoh_file_wtr__basic {
, byte[] lnki_ttl, Xof_ext orig_ext, byte[] lnki_href, byte[] img_view_src, byte[] img_orig_src, byte[] alt) {
if (lnki_halign == Xop_lnki_align_h.Center) bfr.Add(Div_center_bgn);
Bry_bfr tmp_bfr = bfr_mkr.Get_k004();
- byte[] anchor_title = html_wtr.Cfg().Lnki_title()
+ byte[] anchor_title = html_wtr.Cfg().Lnki__title()
? Arg_anchor_title(tmp_bfr, src, lnki, lnki_ttl, anchor_title_wkr) // NOTE: Arg_anchor_title should only be called if there is no caption, else refs may not show; DATE:2014-03-05
: Bry_.Empty;
Xoh_file_img_wkr lnki_file_wkr = lnki.Lnki_file_wkr(); if (lnki_file_wkr == null) lnki_file_wkr = html_fmtr;
diff --git a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr_basic_tst.java b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr_basic_tst.java
index acd916be8..eb8d2e583 100644
--- a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr_basic_tst.java
+++ b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_file_wtr_basic_tst.java
@@ -21,13 +21,13 @@ public class Xoh_file_wtr_basic_tst {
private Xop_fxt fxt = new Xop_fxt();
@Before public void init() {fxt.Reset();}
@Test public void Img_full() { // PURPOSE: full with title was outputting invalid html; DATE:2013-12-31
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_wiki_str
( "[[File:A.png]]"
, String_.Concat_lines_nl_skip_last
( "
" // NOTE: used to output class=\"image\"A.png
));
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Img_embed() {
fxt.Test_parse_page_wiki_str("[[File:A.png|9x8px|alt=abc]]", Xop_fxt.html_img_none("File:A.png", "abc", "file:///mem/wiki/repo/trg/thumb/7/0/A.png/9px.png", "A.png"));
@@ -185,65 +185,65 @@ public class Xoh_file_wtr_basic_tst {
fxt.Init_para_n_();
}
@Test public void Img_title() {
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
Tst_img_title("[[File:A.png|frameless|a b]]", "a b");
Tst_img_title("[[File:A.png|thumb|a b]]", "Enlarge"); // caption should not replace text
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Title_escape() { // PURPOSE: escape quotes in title; PAGE:none; DATE:2014-10-27
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_wiki_str("[[A\"B]]", "A\"B");
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Img_title__caption_has_lnki() { // PURPOSE: caption with lnki should show in title; PAGE:en.w:Earth; DATE:2014-08-06
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
Tst_img_title("[[File:A.png|frameless|[[A]]]]" , "A"); // ttl only
Tst_img_title("[[File:A.png|frameless|[[A|B]]]]" , "B"); // caption
Tst_img_title("[[File:A.png|frameless|[[A]]b]]" , "Ab"); // tail
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Lnki_alt_is_text() { // PURPOSE: (a) alt should default to caption; (b) alt should not show html chars (like
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Alt_ignore_apos() {// PURPOSE: alt should ignore apos; EX: [[File:A.png|''A'']] should have alt of A; DATE:2013-10-25
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_all_str
( "[[File:A.png|''b'']]"
, "
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Alt_ignore_lnke() {// PURPOSE: alt should ignore lnke
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_all_str
( "[[File:A.png|b[http://c.org d] e]]"
, "
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Alt_ignore_list() {// PURPOSE: alt should ignore list
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_all_str
( "[[File:A.png|b\n*c]]"
, "
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Alt_ignore_tblw() {// PURPOSE: alt should ignore tblw
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_all_str
( "[[File:A.png|\n{|\n|-\n|b\n|}\n]]"
, "
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Alt_ignore_para() {// PURPOSE: alt should ignore para
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Init_para_y_();
fxt.Test_parse_page_all_str
( "[[File:A.png|b\nc]]"
@@ -252,15 +252,15 @@ public class Xoh_file_wtr_basic_tst {
, "
"
));
fxt.Init_para_n_();
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Lnki_empty_alt_is_omitted() {// PURPOSE: empty alt should be ignored; DATE:2013-07-30
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_all_str
( "[[File:A.png|a|alt=]]"
, "
"
);
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
@Test public void Href_anchor_leading_space() { // PURPOSE: space before anchor should be preserved, not " " -> "#"
fxt.Test_parse_page_all_str("[[A #b]]", "A #b");
@@ -275,13 +275,13 @@ public class Xoh_file_wtr_basic_tst {
fxt.Test_parse_page_all_str("[[Help:a #b]]", "Help:A #b");
}
@Test public void Lnki_caption_nested_file() { // PURPOSE: nested lnki in caption breaks alt with html chars; EX:de.w:Wien; DATE:2013-12-16
- fxt.Wtr_cfg().Lnki_title_(true);
+ fxt.Wtr_cfg().Lnki__title_(true);
fxt.Test_parse_page_wiki_str("[[File:A.png|none|[[File:B.png|20px|d]] c]]", String_.Concat_lines_nl_skip_last
( ""
, "

"
, ""
));
- fxt.Wtr_cfg().Lnki_title_(false);
+ fxt.Wtr_cfg().Lnki__title_(false);
}
private void Tst_img_title(String raw, String expd_ttl) {
String actl = fxt.Exec_parse_page_wiki_as_str(raw);
diff --git a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_title_fmtr.java b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_title_fmtr.java
index 913ff9733..5a459bdc6 100644
--- a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_title_fmtr.java
+++ b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_title_fmtr.java
@@ -61,7 +61,7 @@ public class Xoh_lnki_title_fmtr implements Bry_fmtr_arg {
for (int i = bgn; i < end; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Tab: // NOTE: escape ws so that it renders correctly in tool tips
+ case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Tab: // NOTE: escape ws so that it renders correctly in tool tips
case Byte_ascii.Quote: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Amp: // NOTE: escape possible javascript injection characters
bfr.Add(Escape_bgn);
bfr.Add_int_variable(b);
diff --git a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_wtr.java b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_wtr.java
index 99c90cf69..bbc844503 100644
--- a/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_wtr.java
+++ b/400_xowa/src/gplx/xowa/html/lnkis/Xoh_lnki_wtr.java
@@ -101,13 +101,13 @@ public class Xoh_lnki_wtr {
else
bfr.Add(Xoh_consts.A_bgn); // ' Roman empire
Html_utl.Escape_html_to_bfr(bfr, lnki_title_bry, 0, lnki_title_bry.length, Bool_.N, Bool_.N, Bool_.N, Bool_.Y, Bool_.N); // escape title; DATE:2014-10-27
@@ -118,7 +118,7 @@ public class Xoh_lnki_wtr {
bfr.Add(gplx.xowa.html.hdumps.abrvs.Xohd_abrv_.Html_redlink_end);
}
else {
- if (cfg.Lnki_visited()
+ if (cfg.Lnki__visited()
&& history_mgr.Has(wiki.Domain_bry(), ttl_bry))
bfr.Add(Bry_xowa_visited); // '" class="xowa-visited'
bfr.Add(Xoh_consts.__end_quote); // '">'
diff --git a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_anchor_finder.java b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_anchor_finder.java
index 4e2af2cc1..e20584956 100644
--- a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_anchor_finder.java
+++ b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_anchor_finder.java
@@ -31,7 +31,7 @@ class Xow_popup_anchor_finder {
return Find_id(bgn);
}
private boolean Find_hdr(int lhs_bgn) {
- int nl_rhs = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, nl_lhs + 1, src_len); // look for \n
+ int nl_rhs = Bry_finder.Find_fwd(src, Byte_ascii.Nl, nl_lhs + 1, src_len); // look for \n
if (nl_rhs == Bry_finder.Not_found) nl_rhs = src_len - 1; // no more \n; set to last idx
nl_lhs = nl_rhs; // update nl_lhs for loop
int lhs_end = Bry_finder.Find_fwd_while(src, lhs_bgn + 1, nl_rhs, Byte_ascii.Eq); // skip eq; EX: "\n==="; +1 to skip eq
@@ -62,7 +62,7 @@ class Xow_popup_anchor_finder {
int id_bgn = Bry_finder.Find_bwd_ws(src, id_end - 1, bgn);
boolean id_match = Int_.Bounds_chk(id_bgn, id_end, src_len) && Bry_.Eq(Id_bry, src, id_bgn + 1, id_end);
if (!id_match) return rv;
- rv = Bry_finder.Find_bwd(src, Byte_ascii.NewLine, id_bgn);
+ rv = Bry_finder.Find_bwd(src, Byte_ascii.Nl, id_bgn);
return rv == Bry_finder.Not_found ? 0 : rv;
}
private static final byte[] Hdr_bgn = Bry_.new_a7("\n="), Id_bry = Bry_.new_a7("id");
diff --git a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_mgr.java b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_mgr.java
index 48e3c6ba5..a81bd2e9f 100644
--- a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_mgr.java
+++ b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_mgr.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.html.modules.popups; import gplx.*; import gplx.xowa.*; import gplx.xowa.html.*; import gplx.xowa.html.modules.*;
import gplx.core.primitives.*; import gplx.core.threads.*;
-import gplx.web.js.*;
+import gplx.core.js.*;
import gplx.xowa.gui.views.*;
import gplx.xowa.specials.*; import gplx.xowa.specials.search.*;
import gplx.xowa.apis.xowa.html.modules.*;
@@ -245,13 +245,12 @@ public class Xow_popup_mgr implements GfoInvkAble, GfoEvObj {
}
class Xow_popup_mgr_ {
public static String Bld_js_cmd(Js_wtr js_wtr, String cbk, byte[] mode, byte[] href, byte[] html) {
- js_wtr.Add_str(cbk);
- js_wtr.Add_paren_bgn();
- js_wtr.Add_str_quote(mode).Add_comma();
- js_wtr.Add_str_quote(href).Add_comma();
- js_wtr.Add_str_quote_html(html);
- js_wtr.Add_paren_end_semic();
- return js_wtr.Xto_str_and_clear();
+ js_wtr.Func_init(cbk);
+ js_wtr.Prm_bry(mode);
+ js_wtr.Prm_bry(href);
+ js_wtr.Prm_bry(html);
+ js_wtr.Func_term();
+ return js_wtr.To_str_and_clear();
}
}
class Load_popup_wkr implements Gfo_thread_wkr {
diff --git a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser.java b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser.java
index b82faf756..8f646f431 100644
--- a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser.java
+++ b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser.java
@@ -55,7 +55,7 @@ public class Xow_popup_parser {
tmpl_keeplist = new Xop_keeplist_wiki(wiki);
tmpl_ctx.Tmpl_keeplist_(tmpl_keeplist);
}
- if (!Bry_.Has_at_end(raw, Byte_ascii.NewLine_bry)) raw = Bry_.Add(raw, Byte_ascii.NewLine_bry);
+ if (!Bry_.Has_at_end(raw, Byte_ascii.Nl_bry)) raw = Bry_.Add(raw, Byte_ascii.Nl_bry);
tmpl_keeplist.Srl().Load_by_bry(raw);
}
private boolean Canceled(Xow_popup_itm popup_itm, Xog_tab_itm cur_tab) {return popup_itm.Canceled() || cur_tab != null && cur_tab.Tab_is_loading();}
@@ -182,7 +182,7 @@ public class Xow_popup_parser {
wrdx_bfr.Add_byte_nl();
}
if (last_hdr_tkn != null) {
- wrdx_bfr.Trim_end(Byte_ascii.NewLine);
+ wrdx_bfr.Trim_end(Byte_ascii.Nl);
byte[] last_hdr_bry = ((Xop_hdr_tkn)last_hdr_tkn.Tkn()).Hdr_toc_text();
html_mkr.Fmtr_next_sect().Bld_bfr_one(wrdx_bfr, last_hdr_bry);
}
diff --git a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser_tst.java b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser_tst.java
index f164cef0b..1d0981573 100644
--- a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_parser_tst.java
@@ -507,7 +507,7 @@ class Xop_popup_parser_fxt {
public void Test_Assert_at_end(String raw, String expd) {
if (test_bfr == null) test_bfr = Bry_bfr.new_();
test_bfr.Clear().Add_str(raw);
- Bry_bfr_.Assert_at_end(test_bfr, Byte_ascii.NewLine);
+ Bry_bfr_.Assert_at_end(test_bfr, Byte_ascii.Nl);
Tfds.Eq(expd, test_bfr.Xto_str_and_clear());
} private Bry_bfr test_bfr;
}
diff --git a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_wrdx_mkr.java b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_wrdx_mkr.java
index 9922e133f..6f524a3dc 100644
--- a/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_wrdx_mkr.java
+++ b/400_xowa/src/gplx/xowa/html/modules/popups/Xow_popup_wrdx_mkr.java
@@ -129,7 +129,7 @@ public class Xow_popup_wrdx_mkr {
wrdx_bfr.Del_by_1();
}
if ( tkn_src_end < wtxt_len // bounds check
- && wtxt_bry[tkn_src_end] == Byte_ascii.NewLine // hdr_tkn will not include trailing "\n". add it; note that this behavior is by design. NOTE:hdr.trailing_nl; DATE:2014-06-17
+ && wtxt_bry[tkn_src_end] == Byte_ascii.Nl // hdr_tkn will not include trailing "\n". add it; note that this behavior is by design. NOTE:hdr.trailing_nl; DATE:2014-06-17
) {
wrdx_bfr.Add_mid(wtxt_bry, tkn_src_bgn, tkn_src_end + 1); // +1 to add the trailing \n
add_tkn = false;
@@ -195,8 +195,8 @@ public class Xow_popup_wrdx_mkr {
private boolean Wtxt_bfr_ends_w_2_nl(Bry_bfr wrdx_bfr, int wrdx_bfr_len) {
byte[] hdom_bfr_bry = wrdx_bfr.Bfr();
return
- ( hdom_bfr_bry[wrdx_bfr_len - 1] == Byte_ascii.NewLine // prv 2 bytes are \n
- && hdom_bfr_bry[wrdx_bfr_len - 2] == Byte_ascii.NewLine
+ ( hdom_bfr_bry[wrdx_bfr_len - 1] == Byte_ascii.Nl // prv 2 bytes are \n
+ && hdom_bfr_bry[wrdx_bfr_len - 2] == Byte_ascii.Nl
);
}
}
diff --git a/400_xowa/src/gplx/xowa/html/portal/Xoa_available_wikis_mgr.java b/400_xowa/src/gplx/xowa/html/portal/Xoa_available_wikis_mgr.java
index b9ad7b272..9daddea4c 100644
--- a/400_xowa/src/gplx/xowa/html/portal/Xoa_available_wikis_mgr.java
+++ b/400_xowa/src/gplx/xowa/html/portal/Xoa_available_wikis_mgr.java
@@ -44,7 +44,7 @@ public class Xoa_available_wikis_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_itms_refresh)) Itms_reset();
else if (ctx.Match(k, Invk_visible)) return Yn.Xto_str(visible);
else if (ctx.Match(k, Invk_visible_)) visible = m.ReadYn("v");
- else if (ctx.Match(k, Invk_visible_toggle)) {visible = !visible; app.Gui_mgr().Browser_win().Active_html_box().Html_js_eval_proc("xowa-portal-wikis-visible-toggle", Bool_.Xto_str_lower(visible));}
+ else if (ctx.Match(k, Invk_visible_toggle)) {visible = !visible; app.Gui_mgr().Browser_win().Active_html_box().Html_js_eval_proc_as_str("xowa-portal-wikis-visible-toggle", Bool_.Xto_str_lower(visible));}
else if (ctx.Match(k, Invk_itms_as_html_fmtr_)) itms_as_html_fmtr.Fmt_(m.ReadBry("v"));
else return GfoInvkAble_.Rv_unhandled;
return this;
diff --git a/400_xowa/src/gplx/xowa/html/portal/Xoh_page_body_cls.java b/400_xowa/src/gplx/xowa/html/portal/Xoh_page_body_cls.java
index 2761f3258..a6474619d 100644
--- a/400_xowa/src/gplx/xowa/html/portal/Xoh_page_body_cls.java
+++ b/400_xowa/src/gplx/xowa/html/portal/Xoh_page_body_cls.java
@@ -57,9 +57,9 @@ public class Xoh_page_body_cls { // REF.MW:Skin.php|getPageClasses
for (int i = 0; i < src_len; ++i) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.Space:
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Space:
case Byte_ascii.Bang: case Byte_ascii.Quote: case Byte_ascii.Hash: case Byte_ascii.Dollar: case Byte_ascii.Percent:
- case Byte_ascii.Amp: case Byte_ascii.Apos: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk:
+ case Byte_ascii.Amp: case Byte_ascii.Apos: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star:
case Byte_ascii.Plus: case Byte_ascii.Comma: case Byte_ascii.Dot: case Byte_ascii.Backslash: case Byte_ascii.Slash:
case Byte_ascii.Colon: case Byte_ascii.Semic: case Byte_ascii.Gt: case Byte_ascii.Eq: case Byte_ascii.Lt:
case Byte_ascii.Question: case Byte_ascii.At: case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end:
diff --git a/400_xowa/src/gplx/xowa/html/sidebar/Xowh_sidebar_mgr.java b/400_xowa/src/gplx/xowa/html/sidebar/Xowh_sidebar_mgr.java
index a10a9f0de..f506f6a20 100644
--- a/400_xowa/src/gplx/xowa/html/sidebar/Xowh_sidebar_mgr.java
+++ b/400_xowa/src/gplx/xowa/html/sidebar/Xowh_sidebar_mgr.java
@@ -51,7 +51,7 @@ public class Xowh_sidebar_mgr implements GfoInvkAble {
);
} private static byte[] Ignore_wiki_ess = Bry_.new_a7("es.wikisource.org"), Ignore_item_ess_random = Bry_.new_u8("special:Random/Página djvu");
public void Parse(Bry_bfr bfr, Bry_bfr comment_bfr, byte[] src) {
- byte[][] lines = Bry_.Split(src, Byte_ascii.NewLine);
+ byte[][] lines = Bry_.Split(src, Byte_ascii.Nl);
int lines_len = lines.length;
Url_encoder id_encoder = Xoa_app_.Utl__encoder_mgr().Id();
Xowh_sidebar_itm cur_grp = null;
@@ -59,8 +59,8 @@ public class Xowh_sidebar_mgr implements GfoInvkAble {
for (int i = 0; i < lines_len; i++) {
byte[] line = lines[i]; int line_len = line.length;
if (line_len == 0) continue; // skip blank lines
- if (line[0] != Byte_ascii.Asterisk) continue; // skip non-list items; must begin with "*"
- byte tid = line[1] == Byte_ascii.Asterisk ? Xowh_sidebar_itm.Tid_itm : Xowh_sidebar_itm.Tid_grp;
+ if (line[0] != Byte_ascii.Star) continue; // skip non-list items; must begin with "*"
+ byte tid = line[1] == Byte_ascii.Star ? Xowh_sidebar_itm.Tid_itm : Xowh_sidebar_itm.Tid_grp;
byte[] bry = Bry_.Trim(line, tid, line_len); // trim *, **; note that tid indicates # of asterisks
bry = gplx.html.Html_utl.Del_comments(comment_bfr, bry); // strip comments; DATE:2014-03-08
if (ignore_trie.Match_bgn(bry, 0, bry.length) != null) continue; // ignore SEARCH, TOOLBOX, LANGUAGES
diff --git a/400_xowa/src/gplx/xowa/html/tocs/Xow_toc_mgr_tst.java b/400_xowa/src/gplx/xowa/html/tocs/Xow_toc_mgr_tst.java
index 2087bffe8..2aaade7de 100644
--- a/400_xowa/src/gplx/xowa/html/tocs/Xow_toc_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/html/tocs/Xow_toc_mgr_tst.java
@@ -519,16 +519,16 @@ class Xow_toc_mgr_fxt {
Tfds.Eq_ary(String_.SplitLines_nl(expd), String_.SplitLines_nl(tmp.Xto_str_and_clear()), raw);
}
public void Test_html_all(String raw, String expd) {
- fxt.Wtr_cfg().Toc_show_(true);
+ fxt.Wtr_cfg().Toc__show_(Bool_.Y);
toc_mgr.Clear();
fxt.Test_parse_page_all_str(raw, expd);
- fxt.Wtr_cfg().Toc_show_(false);
+ fxt.Wtr_cfg().Toc__show_(Bool_.N);
}
public void Test_html_frag(String raw, String frag) {
- fxt.Wtr_cfg().Toc_show_(true);
+ fxt.Wtr_cfg().Toc__show_(Bool_.Y);
toc_mgr.Clear();
fxt.Test_html_full_frag(raw, frag);
- fxt.Wtr_cfg().Toc_show_(false);
+ fxt.Wtr_cfg().Toc__show_(Bool_.N);
}
public String toc_tbl_nl_y(String... ary) {return toc_tbl(Bool_.Y, ary);}
public String toc_tbl_nl_n(String... ary) {return toc_tbl(Bool_.N, ary);}
diff --git a/400_xowa/src/gplx/xowa/html/utils/Xoh_js_cleaner.java b/400_xowa/src/gplx/xowa/html/utils/Xoh_js_cleaner.java
index bed7eae45..fe25d066e 100644
--- a/400_xowa/src/gplx/xowa/html/utils/Xoh_js_cleaner.java
+++ b/400_xowa/src/gplx/xowa/html/utils/Xoh_js_cleaner.java
@@ -79,7 +79,7 @@ public class Xoh_js_cleaner {
for (; atr_pos < end; atr_pos++) {
byte atr_b = src[atr_pos];
switch (atr_b) {
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space: break;
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space: break;
case Byte_ascii.Eq:
next_byte_is_equal = true;
++atr_pos;
diff --git a/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java b/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
index 59bfba453..3a292f1e1 100644
--- a/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
+++ b/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
@@ -53,7 +53,7 @@ public class Xoa_lang_mgr implements GfoInvkAble {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == len;
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -64,7 +64,7 @@ public class Xoa_lang_mgr implements GfoInvkAble {
fld_bgn = pos + 1;
++fld_idx;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
byte[] grp = csv_parser.Load(src, fld_bgn, pos);
Xol_lang_itm itm = Xol_lang_itm_.Get_by_key(code);
itm.Localized_name_(name, grp);
diff --git a/400_xowa/src/gplx/xowa/langs/cases/Xol_case_itm_.java b/400_xowa/src/gplx/xowa/langs/cases/Xol_case_itm_.java
index 0f2f8ded6..8affa22b1 100644
--- a/400_xowa/src/gplx/xowa/langs/cases/Xol_case_itm_.java
+++ b/400_xowa/src/gplx/xowa/langs/cases/Xol_case_itm_.java
@@ -33,7 +33,7 @@ public class Xol_case_itm_ {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = src_pos == src_len;
- byte b = last ? Byte_ascii.NewLine : src[src_pos];
+ byte b = last ? Byte_ascii.Nl : src[src_pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -55,7 +55,7 @@ public class Xol_case_itm_ {
++fld_idx;
fld_bgn = src_pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (!(fld_idx == 0 && fld_bgn == src_pos)) {
byte[] cur_rhs = csv_parser.Load(src, fld_bgn, src_pos);
Xol_case_itm itm = Xol_case_itm_.new_(cur_cmd, cur_lhs, cur_rhs);
diff --git a/400_xowa/src/gplx/xowa/langs/cnvs/Xol_cnv_grp.java b/400_xowa/src/gplx/xowa/langs/cnvs/Xol_cnv_grp.java
index 66619851e..aef6a3d22 100644
--- a/400_xowa/src/gplx/xowa/langs/cnvs/Xol_cnv_grp.java
+++ b/400_xowa/src/gplx/xowa/langs/cnvs/Xol_cnv_grp.java
@@ -38,7 +38,7 @@ public class Xol_cnv_grp implements GfoInvkAble {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == len;
- byte b = last ? Byte_ascii.NewLine : raw[pos];
+ byte b = last ? Byte_ascii.Nl : raw[pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -48,7 +48,7 @@ public class Xol_cnv_grp implements GfoInvkAble {
fld_bgn = pos + 1;
++fld_idx;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (fld_bgn < pos) { // guard against trailing new lines
trg = csv_parser.Load(raw, fld_bgn, pos);
hash.Add_if_dupe_use_nth(src, new Xol_cnv_itm(src, trg));
diff --git a/400_xowa/src/gplx/xowa/pages/Xopg_tmpl_prepend_mgr.java b/400_xowa/src/gplx/xowa/pages/Xopg_tmpl_prepend_mgr.java
index 05424aa85..eb2a465b8 100644
--- a/400_xowa/src/gplx/xowa/pages/Xopg_tmpl_prepend_mgr.java
+++ b/400_xowa/src/gplx/xowa/pages/Xopg_tmpl_prepend_mgr.java
@@ -45,7 +45,7 @@ public class Xopg_tmpl_prepend_mgr {
Bry_bfr stack_bfr = stack[i];
switch (stack_bfr.Get_at_last_or_nil_if_empty()) {
case Byte_ascii.Nil: continue; // bfr is empty; ignore it
- case Byte_ascii.NewLine: add = false; i = -1; break; // bfr ends in \n; don't add and stop; PAGE:bn.w:লিওনেল_মেসি |ko.w:도쿄_지하철_히비야_선|DATE:2014-05-27
+ case Byte_ascii.Nl: add = false; i = -1; break; // bfr ends in \n; don't add and stop; PAGE:bn.w:লিওনেল_মেসি |ko.w:도쿄_지하철_히비야_선|DATE:2014-05-27
default: i = -1; break; // bfr has char; stop
}
}
@@ -53,7 +53,7 @@ public class Xopg_tmpl_prepend_mgr {
else // called from func arg; always add \n; EX:vi.w:Friedrich_II_của_Phổ; DATE:2014-04-26
add = true;
if (add)
- bfr.Add_byte(Byte_ascii.NewLine);
+ bfr.Add_byte(Byte_ascii.Nl);
}
if (called_from_tmpl) --stack_len;
}
diff --git a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_lxr.java b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_lxr.java
index 2316b340e..c37ecb86b 100644
--- a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_lxr.java
+++ b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa.parsers.hdrs; import gplx.*; import gplx.xowa.*; import gplx.x
import gplx.core.btries.*;
public class Xop_hdr_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_hdr;}
- public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook_bgn, this);} static final byte[] Hook_bgn = new byte[] {Byte_ascii.NewLine, Byte_ascii.Eq};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook_bgn, this);} static final byte[] Hook_bgn = new byte[] {Byte_ascii.Nl, Byte_ascii.Eq};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Hdr().Make_tkn_bgn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_hdr_lxr _ = new Xop_hdr_lxr(); Xop_hdr_lxr() {}
diff --git a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr.java b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr.java
index d0d1c9e57..e522577b0 100644
--- a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr.java
@@ -99,7 +99,7 @@ public class Xop_hdr_wkr implements Xop_ctx_wkr {
if (cur == end) return cur;
byte b = src[cur];
switch (b) {
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
cur++;
last_nl = cur;
break;
diff --git a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_basic_tst.java b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__basic_tst.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_basic_tst.java
rename to 400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__basic_tst.java
index 52e1b0943..2396b98fb 100644
--- a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_basic_tst.java
+++ b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__basic_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.parsers.hdrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import org.junit.*;
-public class Xop_hdr_wkr_basic_tst {
+public class Xop_hdr_wkr__basic_tst {
@Before public void init() {fxt.Reset();} private Xop_fxt fxt = new Xop_fxt();
@After public void term() {fxt.Init_para_n_();}
@Test public void H2() {fxt.Test_parse_page_wiki_str("==a==" , "a
\n");}
@@ -82,7 +82,7 @@ public class Xop_hdr_wkr_basic_tst {
@Test public void Err_hdr() {fxt.Init_log_(Xop_hdr_log.Mismatched) .Test_parse_page_wiki_str("====a== ==" , "==a==
\n").tst_Log_check();}
@Test public void Err_end_hdr_is_1() {fxt.Init_log_(Xop_hdr_log.Mismatched, Xop_hdr_log.Len_1).Test_parse_page_wiki_str("==a=" , "=a
\n").tst_Log_check();}
@Test public void Html_hdr_many() {
- fxt.Wtr_cfg().Toc_show_(true);
+ fxt.Wtr_cfg().Toc__show_(Bool_.Y);
fxt.Test_parse_page_wiki_str(String_.Concat_lines_nl_skip_last
( "==a=="
, "==a=="
@@ -95,7 +95,7 @@ public class Xop_hdr_wkr_basic_tst {
, "a
"
, ""
));
- fxt.Wtr_cfg().Toc_show_(false);
+ fxt.Wtr_cfg().Toc__show_(Bool_.N);
}
@Test public void Hdr_inside_dangling_tmpl_fix() { // PURPOSE: one-off fix to handle == inside dangling tmpl; DATE:2014-02-11
fxt.Test_parse_page_all_str("{{a|}\n==b=="
diff --git a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__div_wrapper_tst.java b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__div_wrapper_tst.java
new file mode 100644
index 000000000..869f399d9
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__div_wrapper_tst.java
@@ -0,0 +1,56 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.parsers.hdrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
+import org.junit.*;
+public class Xop_hdr_wkr__div_wrapper_tst {
+ @Before public void init() {fxt.Reset(); fxt.Init_para_y_();} private Xop_fxt fxt = new Xop_fxt();
+ @After public void term() {fxt.Init_para_n_();}
+ @Test public void Basic() { // PURPOSE: basic div_wrapper test; DATE:2015-06-24
+ fxt.Wtr_cfg().Hdr__div_wrapper_(Bool_.Y);
+ fxt.Test_parse_page_wiki_str(String_.Concat_lines_nl_skip_last
+ ( "==a=="
+ , "b"
+ , "==c=="
+ , "d"
+ , "==e=="
+ , "f"
+ ), String_.Concat_lines_nl_skip_last
+ ( "a
"
+ , ""
+ , ""
+ , "
b"
+ , "
"
+ , ""
+ , "
"
+ , "c
"
+ , ""
+ , ""
+ , "
d"
+ , "
"
+ , ""
+ , "
"
+ , "e
"
+ , ""
+ , ""
+ , "
f"
+ , "
"
+ , "
"
+ ));
+ fxt.Wtr_cfg().Hdr__div_wrapper_(Bool_.N);
+ }
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_para_tst.java b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__para_tst.java
similarity index 96%
rename from 400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_para_tst.java
rename to 400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__para_tst.java
index 34fd535f5..8db39bbb2 100644
--- a/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr_para_tst.java
+++ b/400_xowa/src/gplx/xowa/parsers/hdrs/Xop_hdr_wkr__para_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.parsers.hdrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import org.junit.*;
-public class Xop_hdr_wkr_para_tst {
+public class Xop_hdr_wkr__para_tst {
@Before public void init() {fxt.Reset(); fxt.Init_para_y_();} private Xop_fxt fxt = new Xop_fxt();
@After public void term() {fxt.Init_para_n_();}
@Test public void Hdr_at_bos() { // PURPOSE: check that BOS==a== does not throw null ref in para; DATE:2014-02-18
diff --git a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_tkn_.java b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_tkn_.java
index 45aff02db..e381414bb 100644
--- a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_tkn_.java
+++ b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_tkn_.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.parsers.lists; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
public class Xop_list_tkn_ {
public static final byte[]
- Hook_ul = new byte[] {Byte_ascii.NewLine, Byte_ascii.Asterisk}, Hook_ol = new byte[] {Byte_ascii.NewLine, Byte_ascii.Hash}
- , Hook_dt = new byte[] {Byte_ascii.NewLine, Byte_ascii.Semic} , Hook_dd = new byte[] {Byte_ascii.NewLine, Byte_ascii.Colon};
- public static final byte List_itmTyp_null = 0, List_itmTyp_ul = Byte_ascii.Asterisk, List_itmTyp_ol = Byte_ascii.Hash, List_itmTyp_dt = Byte_ascii.Semic, List_itmTyp_dd = Byte_ascii.Colon;
+ Hook_ul = new byte[] {Byte_ascii.Nl, Byte_ascii.Star}, Hook_ol = new byte[] {Byte_ascii.Nl, Byte_ascii.Hash}
+ , Hook_dt = new byte[] {Byte_ascii.Nl, Byte_ascii.Semic} , Hook_dd = new byte[] {Byte_ascii.Nl, Byte_ascii.Colon};
+ public static final byte List_itmTyp_null = 0, List_itmTyp_ul = Byte_ascii.Star, List_itmTyp_ol = Byte_ascii.Hash, List_itmTyp_dt = Byte_ascii.Semic, List_itmTyp_dd = Byte_ascii.Colon;
public static final String Str_li = "li", Str_ol = "ol", Str_ul = "ul", Str_dl = "dl", Str_dt = "dt", Str_dd = "dd";
public static final byte[] Byt_li = Bry_.new_a7(Str_li), Byt_ol = Bry_.new_a7(Str_ol), Byt_ul = Bry_.new_a7(Str_ul)
, Byt_dl = Bry_.new_a7(Str_dl), Byt_dt = Bry_.new_a7(Str_dt), Byt_dd = Bry_.new_a7(Str_dd);
@@ -44,7 +44,7 @@ public class Xop_list_tkn_ {
}
public static byte Char_lst(byte b) {
switch (b) {
- case List_itmTyp_ul: return Byte_ascii.Asterisk;
+ case List_itmTyp_ul: return Byte_ascii.Star;
case List_itmTyp_ol: return Byte_ascii.Hash;
case List_itmTyp_dt: return Byte_ascii.Semic;
case List_itmTyp_dd: return Byte_ascii.Colon;
diff --git a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr.java b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr.java
index eb15fc772..ea6e38bcc 100644
--- a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr.java
@@ -136,7 +136,7 @@ public class Xop_list_wkr implements Xop_ctx_wkr {
for (int i = cur_pos; i < src_len; i++) {
curByt = src[i];
switch (curByt) {
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
case Byte_ascii.Hash:
case Byte_ascii.Semic:
case Byte_ascii.Colon:
@@ -156,7 +156,7 @@ public class Xop_list_wkr implements Xop_ctx_wkr {
}
curByt = src[cur_pos];
switch (curByt) {
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
case Byte_ascii.Hash:
case Byte_ascii.Semic:
curSymAry[curSymLen++] = curByt;
diff --git a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr_.java b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr_.java
index 3fe32b848..aed3fdf62 100644
--- a/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr_.java
+++ b/400_xowa/src/gplx/xowa/parsers/lists/Xop_list_wkr_.java
@@ -25,7 +25,7 @@ public class Xop_list_wkr_ {
}
public static byte Compare_normalize(byte b) { // convert : to ; for sake of determining levels; EX: ";:" is actually same group
switch (b) {
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
case Byte_ascii.Hash:
case Byte_ascii.Semic: return b;
case Byte_ascii.Colon: return Byte_ascii.Semic;
diff --git a/400_xowa/src/gplx/xowa/parsers/lnkes/Xop_lnke_wkr.java b/400_xowa/src/gplx/xowa/parsers/lnkes/Xop_lnke_wkr.java
index 6318037b7..a97b7c26c 100644
--- a/400_xowa/src/gplx/xowa/parsers/lnkes/Xop_lnke_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/lnkes/Xop_lnke_wkr.java
@@ -90,7 +90,7 @@ public class Xop_lnke_wkr implements Xop_ctx_wkr {
}
break;
case Byte_ascii.Space: lnke_end_tid = End_tid_space; break;
- case Byte_ascii.NewLine: lnke_end_tid = End_tid_nl; break;
+ case Byte_ascii.Nl: lnke_end_tid = End_tid_nl; break;
case Byte_ascii.Gt: case Byte_ascii.Lt:
lnke_end_tid = End_tid_invalid;
break;
diff --git a/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_lxr.java b/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_lxr.java
index a906f0d6f..ba456df78 100644
--- a/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_lxr.java
+++ b/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa.parsers.paras; import gplx.*; import gplx.xowa.*; import gplx.
import gplx.core.btries.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.parsers.tblws.*;
public class Xop_nl_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_nl;}
- public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.NewLine, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Nl, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
if (bgn_pos == Xop_parser_.Doc_bgn_bos) return ctx.Lxr_make_txt_(cur_pos); // simulated nl at beginning of every parse
@@ -90,7 +90,7 @@ public class Xop_nl_lxr implements Xop_lxr {
for (int i = cur_pos; i < src_len; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: // ignore ws
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: // ignore ws
break;
case Byte_ascii.Brack_bgn: // [
if ( Bry_.Eq_itm(src, src_len, i + 1, Byte_ascii.Brack_bgn) // [[
diff --git a/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_tab_lxr.java b/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_tab_lxr.java
index e5ec8d36a..67b066897 100644
--- a/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_tab_lxr.java
+++ b/400_xowa/src/gplx/xowa/parsers/paras/Xop_nl_tab_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa.parsers.paras; import gplx.*; import gplx.xowa.*; import gplx.
import gplx.core.btries.*; import gplx.xowa.parsers.tblws.*;
public class Xop_nl_tab_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_nl_tab;}
- public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook_nl_tab, this);} private static final byte[] Hook_nl_tab = new byte[] {Byte_ascii.NewLine, Byte_ascii.Tab};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook_nl_tab, this);} private static final byte[] Hook_nl_tab = new byte[] {Byte_ascii.Nl, Byte_ascii.Tab};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int non_ws_pos = Bry_finder.Find_fwd_while_space_or_tab(src, cur_pos, src_len);
diff --git a/400_xowa/src/gplx/xowa/parsers/paras/Xop_para_wkr.java b/400_xowa/src/gplx/xowa/parsers/paras/Xop_para_wkr.java
index 5582c065c..30037cba4 100644
--- a/400_xowa/src/gplx/xowa/parsers/paras/Xop_para_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/paras/Xop_para_wkr.java
@@ -103,9 +103,9 @@ public class Xop_para_wkr implements Xop_ctx_wkr {
if (line_is_ws) { // line is entirely ws
int next_char_pos = prv_nl_pos + 2; // "\n\s".length
if ( next_char_pos < src.length // bounds check
- && src[next_char_pos] == Byte_ascii.NewLine // is "\n\s\n"; i.e.: "\n" only
+ && src[next_char_pos] == Byte_ascii.Nl // is "\n\s\n"; i.e.: "\n" only
) {
- ctx.Subs_add(root, ctx.Tkn_mkr().Bry_raw(bgn_pos, bgn_pos, Byte_ascii.NewLine_bry)); // add a "\n" tkn; note that adding a NewLine tkn doesn't work, b/c Xoh_html_wtr has code to remove consecutive \n; PAGE:en.w:Preferred_numbers DATE:2014-06-24
+ ctx.Subs_add(root, ctx.Tkn_mkr().Bry_raw(bgn_pos, bgn_pos, Byte_ascii.Nl_bry)); // add a "\n" tkn; note that adding a NewLine tkn doesn't work, b/c Xoh_html_wtr has code to remove consecutive \n; PAGE:en.w:Preferred_numbers DATE:2014-06-24
prv_nl_pos = bgn_pos;
}
}
@@ -174,7 +174,7 @@ public class Xop_para_wkr implements Xop_ctx_wkr {
int nxt_pos = tblw_ws_trie.Match_pos();
if (nxt_pos < src_len) { // bounds check
switch (src[nxt_pos]) { // check that next char is "end" of xnde name; guard against false matches like " ""; also bounds check
byte b = src[txt_pos];
if (bgn_pos == Xop_parser_.Doc_bgn_bos) { // BOS; gobble up all \s\t; EX: "BOS\s\s\sa" -> "BOSa"
- if (b == Byte_ascii.NewLine) { // next char is nl
+ if (b == Byte_ascii.Nl) { // next char is nl
cur_pos = txt_pos; // position at nl; NOTE: do not position after nl, else may break hdr, tblw, list, etc; EX: "\s\n{|" needs to preserve "\n" for tblw
ctx.Subs_add(root, tkn_mkr.Ignore(bgn_pos, cur_pos, Xop_ignore_tkn.Ignore_tid_pre_at_bos));
return cur_pos; // ignore pre if blank line at bos; EX: "BOS\s\s\n" -> "BOS\n"
@@ -74,7 +74,7 @@ public class Xop_pre_lxr implements Xop_lxr {
return ctx.Para().Process_pre(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos, txt_pos);
}
public static final Xop_pre_lxr _ = new Xop_pre_lxr(); Xop_pre_lxr() {}
- private static final byte[] Hook_space = new byte[] {Byte_ascii.NewLine, Byte_ascii.Space};
+ private static final byte[] Hook_space = new byte[] {Byte_ascii.Nl, Byte_ascii.Space};
}
/*
NOTE_4: Close_all_lists_unless_category; PAGE:en.w:SHA-2
diff --git a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_lxr.java b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_lxr.java
index 8bdef2f58..977d9603c 100644
--- a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_lxr.java
+++ b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_lxr.java
@@ -47,14 +47,14 @@ public class Xop_tblw_lxr implements Xop_lxr {
}
else { // \n| or \n! but no tbl
if ( bgn_pos != Xop_parser_.Doc_bgn_bos // avoid ! at BOS
- && src[bgn_pos] == Byte_ascii.NewLine) // handle "!" etc.
+ && src[bgn_pos] == Byte_ascii.Nl) // handle "!" etc.
return Xop_tblw_wkr.Handle_false_tblw_match(ctx, root, src, bgn_pos, cur_pos, tkn_mkr.Txt(bgn_pos + 1, cur_pos), true); // +1 to ignore \n of "\n!", "\n!!", "\n|"; DATE:2014-02-19
else // handle "!!" only
return ctx.Lxr_make_txt_(cur_pos);
}
}
if (wlxr_type == Xop_tblw_wkr.Tblw_type_th2) { // !!; extra check to make sure \n! exists; DATE:2014-10-19
- int prv_th_pos = Bry_finder.Find_bwd(src, Byte_ascii.NewLine, bgn_pos); // search for previous \n
+ int prv_th_pos = Bry_finder.Find_bwd(src, Byte_ascii.Nl, bgn_pos); // search for previous \n
boolean invalid = prv_th_pos == Bry_finder.Not_found; // no \n; invalid
if (!invalid) {
++prv_th_pos; // skip \n
diff --git a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_wkr.java b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_wkr.java
index aa335d980..3fce1452f 100644
--- a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_wkr.java
@@ -150,7 +150,7 @@ public class Xop_tblw_wkr implements Xop_ctx_wkr {
if (ignore_prv) {
ctx.Subs_add(root, tkn_mkr.Ignore(bgn_pos, cur_pos, Xop_ignore_tkn.Ignore_tid_htmlTidy_tblw));
++tblw_te_ignore_count;
- cur_pos = Bry_finder.Find_fwd_until(src, cur_pos, src_len, Byte_ascii.NewLine); // NOTE: minor hack; this tblw tkn will be ignored, so ignore any of its attributes as well; gobble up all chars till nl. see: if two consecutive tbs, ignore attributes on 2nd; en.wikibooks.org/wiki/Wikibooks:Featured books
+ cur_pos = Bry_finder.Find_fwd_until(src, cur_pos, src_len, Byte_ascii.Nl); // NOTE: minor hack; this tblw tkn will be ignored, so ignore any of its attributes as well; gobble up all chars till nl. see: if two consecutive tbs, ignore attributes on 2nd; en.wikibooks.org/wiki/Wikibooks:Featured books
return cur_pos;
}
if (auto_create) {
diff --git a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_ws_itm.java b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_ws_itm.java
index fbf11d8ff..2bfa9d87d 100644
--- a/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_ws_itm.java
+++ b/400_xowa/src/gplx/xowa/parsers/tblws/Xop_tblw_ws_itm.java
@@ -32,7 +32,7 @@ public class Xop_tblw_ws_itm {
trie_itm(rv, Type_th, Xop_tblw_lxr_ws.Hook_th);
trie_itm(rv, Type_tc, Xop_tblw_lxr_ws.Hook_tc);
trie_itm(rv, Type_td, Bry_.bytes_(Byte_ascii.Pipe));
- trie_itm(rv, Type_nl, Bry_.bytes_(Byte_ascii.NewLine));
+ trie_itm(rv, Type_nl, Bry_.bytes_(Byte_ascii.Nl));
trie_itm_xnde(rv, Xop_xnde_tag_.Tag_table);
trie_itm_xnde(rv, Xop_xnde_tag_.Tag_tr);
trie_itm_xnde(rv, Xop_xnde_tag_.Tag_td);
diff --git a/400_xowa/src/gplx/xowa/parsers/tmpls/Nowiki_escape_itm.java b/400_xowa/src/gplx/xowa/parsers/tmpls/Nowiki_escape_itm.java
index 996e8d5d9..c859f16c2 100644
--- a/400_xowa/src/gplx/xowa/parsers/tmpls/Nowiki_escape_itm.java
+++ b/400_xowa/src/gplx/xowa/parsers/tmpls/Nowiki_escape_itm.java
@@ -43,7 +43,7 @@ public class Nowiki_escape_itm {
}
return dirty;
}
- private static final byte[] Pre_bry = new byte[] {Byte_ascii.NewLine, Byte_ascii.Space}; // NOTE: must go before trie_new
+ private static final byte[] Pre_bry = new byte[] {Byte_ascii.Nl, Byte_ascii.Space}; // NOTE: must go before trie_new
private static final Btrie_slim_mgr trie = trie_new();
private static Btrie_slim_mgr trie_new() {
Btrie_slim_mgr rv = Btrie_slim_mgr.cs_();
@@ -57,7 +57,7 @@ public class Nowiki_escape_itm {
trie_new_itm(rv, Byte_ascii.Asterisk_bry , Xop_amp_trie.Bry_xowa_asterisk);
trie_new_itm(rv, Byte_ascii.Dash_bry , Xop_amp_trie.Bry_xowa_dash); // needed to handle "|-"; PAGE:de.w:Liste_von_Vereinen_und_Vereinigungen_von_Gl�ubigen_(r�misch-katholische_Kirche) DATE:2015-01-08
trie_new_itm(rv, Byte_ascii.Space_bry , Xop_amp_trie.Bry_xowa_space);
- trie_new_itm(rv, Byte_ascii.NewLine_bry , Xop_amp_trie.Bry_xowa_nl);
+ trie_new_itm(rv, Byte_ascii.Nl_bry , Xop_amp_trie.Bry_xowa_nl);
trie_new_itm(rv, Pre_bry , Pre_bry);
return rv;
}
diff --git a/400_xowa/src/gplx/xowa/servers/Gxw_html_server.java b/400_xowa/src/gplx/xowa/servers/Gxw_html_server.java
index 8e5738b7e..758953dd4 100644
--- a/400_xowa/src/gplx/xowa/servers/Gxw_html_server.java
+++ b/400_xowa/src/gplx/xowa/servers/Gxw_html_server.java
@@ -16,54 +16,25 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.servers; import gplx.*; import gplx.xowa.*;
-import gplx.core.primitives.*; import gplx.gfui.*;
+import gplx.core.primitives.*; import gplx.core.js.*;
+import gplx.gfui.*;
import gplx.xowa.servers.tcp.*;
import gplx.xowa.servers.http.*; import gplx.xowa.gui.views.*;
public class Gxw_html_server implements Gxw_html {
private Xosrv_socket_wtr wtr; private Gfo_usr_dlg usr_dlg;
- private Gfui_html_cfg cfg;
+ private final Js_wtr js_wtr = new Js_wtr();
public Gxw_html_server(Gfo_usr_dlg usr_dlg, Xosrv_socket_wtr wtr) {
- this.usr_dlg = usr_dlg; this.wtr = wtr;
- cfg = Swt_kit._.Html_cfg();
+ this.usr_dlg = usr_dlg; this.wtr = wtr;
}
- public String Html_doc_html() {return Exec(cfg.Doc_html());}
- public void Html_doc_html_load_by_mem(String html) {Exec("location.reload(true);");} // HACK: force reload of page
- public void Html_doc_html_load_by_url(String path, String html) {Exec("location.reload(true);");} // HACK: force reload of page
+ public void Html_doc_html_load_by_mem(String html) {Exec_as_str("location.reload(true);");} // HACK: force reload of page
+ public void Html_doc_html_load_by_url(String path, String html) {Exec_as_str("location.reload(true);");} // HACK: force reload of page
public byte Html_doc_html_load_tid() {return html_doc_html_load_tid;} private byte html_doc_html_load_tid;
public void Html_doc_html_load_tid_(byte v) {html_doc_html_load_tid = v;}
public void Html_dispose() {}
- public String Html_doc_selected_get_text_or_href() {return Exec(cfg.Doc_selected_get_text_or_href());}
- public String Html_doc_selected_get_href_or_text() {return Exec(cfg.Doc_selected_get_href_or_text());}
- public String Html_doc_selected_get_src_or_empty() {return Exec(cfg.Doc_selected_get_src_or_empty());}
- public String Html_doc_selected_get_active_or_selection() {return Exec(cfg.Doc_selected_get_active_or_selection());}
- public boolean Html_doc_find(String id, String find, boolean dir_fwd, boolean case_match, boolean wrap_find, boolean highlight_matches) {throw Err_.not_implemented_();}
- public void Html_doc_body_focus() {Exec(cfg.Doc_body_focus());}
- public void Html_doc_selection_focus_toggle() {Exec(cfg.Doc_selection_focus_toggle());}
- public String Html_elem_atr_get_str (String id, String atr_key) {return Exec(cfg.Elem_atr_get(id, atr_key));}
- public boolean Html_elem_atr_get_bool (String id, String atr_key) {return Bool_.parse_(Exec(cfg.Elem_atr_get(id, atr_key)));}
- public boolean Html_elem_atr_set (String id, String atr_key, String val) {return Exec_as_bool(cfg.Elem_atr_set(id, atr_key, val));}
- public boolean Html_elem_atr_set_append(String id, String atr_key, String val) {return Exec_as_bool(cfg.Elem_atr_set_append(id, atr_key, val));}
- public boolean Html_elem_delete(String id) {return Exec_as_bool(cfg.Elem_delete(id));}
- public boolean Html_elem_replace_html(String id, String html) {return Exec_as_bool(cfg.Elem_replace_html(id, html));}
- public boolean Html_elem_append_above(String id, String html) {return Exec_as_bool(cfg.Elem_append_above(id, html));}
- public boolean Html_gallery_packed_exec() {return Exec_as_bool(cfg.Gallery_packed_exec());}
- public boolean Html_elem_focus(String id) {return Exec_as_bool(cfg.Elem_focus(id));}
- public boolean Html_elem_scroll_into_view(String id) {return Exec_as_bool(cfg.Elem_scroll_into_view(id));}
- public boolean Html_elem_img_update(String id, String src, int w, int h) {return Exec_as_bool(cfg.Elem_img_update(id, src, w, h));}
- public String Html_window_vpos() {return Exec(cfg.Window_vpos());}
- public boolean Html_window_vpos_(String v) {
- if (String_.Len_eq_0(v)) return false; // HACK: v == "" when switching between Read and Edit
- Gfui_html_cfg.Html_window_vpos_parse(v, scroll_top, node_path);
- return Exec_as_bool(cfg.Window_vpos_(scroll_top.Val(), node_path.Val()));
- } private String_obj_ref scroll_top = String_obj_ref.null_(), node_path = String_obj_ref.null_();
- public boolean Html_window_print_preview() {return Exec_as_bool(cfg.Window_print_preview());}
- public String Html_active_atr_get_str(String atr_key, String or) {return Exec(cfg.Active_atr_get_str(atr_key));}
public void Html_js_enabled_(boolean v) {}
- public void Html_js_eval_proc(String name, String... args) {
- Bry_fmtr fmtr = cfg.Js_scripts_get(name);
- Exec(fmtr.Bld_str_many(args));
- }
- public String Html_js_eval_script(String script) {return Exec(script);}
+ public String Html_js_eval_proc_as_str(String name, Object... args) {return Exec_as_str(js_wtr.Write_statement_return_func(name, args).To_str_and_clear());} // TODO: add other params
+ public boolean Html_js_eval_proc_as_bool(String name, Object... args) {return Exec_as_bool(js_wtr.Write_statement_return_func(name, args).To_str_and_clear());}
+ public String Html_js_eval_script(String script) {return Exec_as_str(script);}
public void Html_js_cbks_add(String js_func_name, GfoInvkAble invk) {}
public void Html_invk_src_(GfoEvObj v) {}
public GxwCore_base Core() {throw Err_.not_implemented_();}
@@ -72,10 +43,10 @@ public class Gxw_html_server implements Gxw_html {
public String TextVal() {throw Err_.not_implemented_();} public void TextVal_set(String v) {throw Err_.not_implemented_();}
public void EnableDoubleBuffering() {throw Err_.not_implemented_();}
private boolean Exec_as_bool(String s) {
- Exec(s);
+ Exec_as_str(s);
return true; // NOTE: js is async, so immediate return value is not possible; return true for now;
}
- private String Exec(String s) {
+ private String Exec_as_str(String s) {
if (wtr == null) return ""; // HACK: handles http_server
s = "(function () {" + s + "})();"; // NOTE: dependent on firefox addon which does 'var result = Function("with(arguments[0]){return "+cmd_text+"}")(session.window);'; DATE:2014-01-28
Xosrv_msg msg = Xosrv_msg.new_(Xosrv_cmd_types.Browser_exec, Bry_.Empty, Bry_.Empty, Bry_.Empty, Bry_.Empty, Bry_.new_u8(s));
diff --git a/400_xowa/src/gplx/xowa/servers/http/Http_server_mgr.java b/400_xowa/src/gplx/xowa/servers/http/Http_server_mgr.java
index 48ec54fef..d4b157d84 100644
--- a/400_xowa/src/gplx/xowa/servers/http/Http_server_mgr.java
+++ b/400_xowa/src/gplx/xowa/servers/http/Http_server_mgr.java
@@ -207,90 +207,93 @@ class HttpRequest implements Runnable{
this.app_root_dir = app.Fsys_mgr().Root_dir().To_http_file_str();
}
public void run(){
+ String err_line = "00";
try {
- InputStream is = socket.getInputStream();
- DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
- BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
- String request = br.readLine();
- //System.out.println(request);
- String req = request.substring(4, request.length() - 9).trim();
- String wiki_domain = "home";
- String page_name = "Main_Page";
+ InputStream is = socket.getInputStream(); err_line = "01";
+ DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); err_line = "02";
+ BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); err_line = "03";
+ String request = br.readLine(); err_line = "04";
+ //System.out.println(request); err_line = "03";
+ String req = request.substring(4, request.length() - 9).trim(); err_line = "05";
+ String wiki_domain = "home"; err_line = "06";
+ String page_name = "Main_Page"; err_line = "07";
if(!req.contains("%file%")){
if(req.equals("/")) { // no page; EX:"localhost:8080" vs "localhost:8080/en.wikipedia.org/wiki/Earth"
- String home_url = app.Http_server().Home();;
+ String home_url = app.Http_server().Home(); err_line = "08";
if (String_.Has_at_bgn(home_url, "file://")) {
- Io_url file_url = Io_url_.http_any_(home_url, Op_sys.Cur().Tid_is_wnt());
- String page_html = Io_mgr.I.LoadFilStr(file_url);
- Write_page(dos, page_html, app_root_dir, wiki_domain);
+ Io_url file_url = Io_url_.http_any_(home_url, Op_sys.Cur().Tid_is_wnt()); err_line = "09";
+ String page_html = Io_mgr.I.LoadFilStr(file_url); err_line = "10";
+ Write_page(dos, page_html, app_root_dir, wiki_domain); err_line = "11";
+ }
+ else {
+ req += app.Http_server().Home(); err_line = "12";
}
- else
- req += app.Http_server().Home();
}
- req = Http_server_wkr_.Assert_main_page(app, req);
+ req = Http_server_wkr_.Assert_main_page(app, req); err_line = "13";
}
if(req.contains("%xowa-cmd%") || req.contains("/xowa-cmd:")){
- System.out.println("Command output:");
- String cmd = "";
+ System.out.println("Command output:"); err_line = "14";
+ String cmd = ""; err_line = "15";
if (req.contains("%xowa-cmd%"))
cmd = req.substring(req.indexOf("%xowa-cmd%")+20);
else
cmd = req.substring(req.indexOf("/xowa-cmd:")+10);
- System.out.println(cmd);
- app.Http_server().Run_xowa_cmd(app, cmd);
- dos.writeBytes("Command sent, see console log for more details.");
- dos.close();
- }else
- if(req.contains("%file%")){
- String path = req.replace("/%file%/", app_root_dir);
- path = path.substring(path.indexOf(app_root_dir)+5);
- Url_encoder url_converter = Url_encoder.new_http_url_();
- path = url_converter.Decode_str(path);
+ System.out.println(cmd); err_line = "15";
+ app.Http_server().Run_xowa_cmd(app, cmd); err_line = "16";
+ dos.writeBytes("Command sent, see console log for more details."); err_line = "17";
+ dos.close(); err_line = "18";
+ }
+ else if(req.contains("%file%")){
+ String path = req.replace("/%file%/", app_root_dir); err_line = "19";
+ path = path.substring(path.indexOf(app_root_dir)+5); err_line = "20";
+ Url_encoder url_converter = Url_encoder.new_http_url_(); err_line = "21";
+ path = url_converter.Decode_str(path); err_line = "22";
if(path.contains("?")){
- path = path.substring(0, path.indexOf("?"));
+ path = path.substring(0, path.indexOf("?")); err_line = "23";
}
- FileInputStream fis = new FileInputStream(path);
+ FileInputStream fis = new FileInputStream(path); err_line = "24";
- dos.writeBytes("HTTP/1.1 200 OK: ");
- dos.writeBytes("Content-Type: " + contentType(path) + CRLF);
- dos.writeBytes(CRLF);
+ dos.writeBytes("HTTP/1.1 200 OK: "); err_line = "25";
+ dos.writeBytes("Content-Type: " + contentType(path) + CRLF); err_line = "26";
+ dos.writeBytes(CRLF); err_line = "27";
- sendBytes(fis, dos);
- fis.close();
- dos.close();
- br.close();
- socket.close();
+ sendBytes(fis, dos); err_line = "28";
+ fis.close(); err_line = "28";
+ dos.close(); err_line = "29";
+ br.close(); err_line = "30";
+ socket.close(); err_line = "31";
}else{
- String[] req_split = req.split("/");
- System.out.println("Request: " +request);
+ String[] req_split = req.split("/"); err_line = "32";
+ System.out.println("Request: " +request); err_line = "33";
if(req_split.length >= 1){
- wiki_domain = req_split[1];
+ wiki_domain = req_split[1]; err_line = "34";
}
if(req_split.length >= 4){
- page_name = req_split[3];
+ page_name = req_split[3]; err_line = "35";
for(int i = 4; i <= req_split.length-1; i++){
- page_name += "/"+req_split[i];
+ page_name += "/"+req_split[i]; err_line = "36";
}
- Url_encoder url_converter = Url_encoder.new_http_url_();
- page_name = url_converter.Decode_str(page_name);
+ Url_encoder url_converter = Url_encoder.new_http_url_(); err_line = "37";
+ page_name = url_converter.Decode_str(page_name); err_line = "38";
//page_name = app.Url_converter_url().Decode_str(page_name);
}
try{
- String page_html = app.Http_server().Parse_page_to_html(app, wiki_domain, page_name);
- Write_page(dos, page_html, app_root_dir, wiki_domain);
+ String page_html = app.Http_server().Parse_page_to_html(app, wiki_domain, page_name); err_line = "39";
+ Write_page(dos, page_html, app_root_dir, wiki_domain); err_line = "40";
}catch(Exception err) {
- dos.writeBytes("Site not found. Check address please, or see console log.\n"+err.getMessage());
- dos.close();
+ dos.writeBytes("Site not found. Check address please, or see console log.\n"+err.getMessage()); err_line = "41";
+ dos.close(); err_line = "42";
}
}
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception e) {
- System.out.println("error retrieving page. Please make sure your url is of the form: http://localhost:8080/home/wiki/Main_Page");
+ String err_msg = String_.Format("error retrieving page. Please make sure your url is of the form: http://localhost:8080/home/wiki/Main_Page; err_msg={0} err_line={1}", e.toString(), err_line);
+ System.out.println(err_msg);
e.printStackTrace();
}
}
@@ -311,6 +314,7 @@ class HttpRequest implements Runnable{
try{
strm.writeBytes("HTTP/1.1 200 OK: ");
strm.writeBytes("Content-Type: text/html; charset=utf-8" + CRLF);
+ strm.writeBytes("Access-Control-Allow-Origin: *" + CRLF); // No 'Access-Control-Allow-Origin' header is present on the requested resource.
strm.writeBytes(CRLF);
strm.write(page_html.getBytes(Charset.forName("UTF-8")));
strm.close();
diff --git a/400_xowa/src/gplx/xowa/setup/maints/Wmf_latest_parser.java b/400_xowa/src/gplx/xowa/setup/maints/Wmf_latest_parser.java
index 34da23303..6872a2c83 100644
--- a/400_xowa/src/gplx/xowa/setup/maints/Wmf_latest_parser.java
+++ b/400_xowa/src/gplx/xowa/setup/maints/Wmf_latest_parser.java
@@ -49,7 +49,7 @@ public class Wmf_latest_parser {
byte[] date_bry = Bry_.Mid(src, date_bgn, date_end);
DateAdp date = DateAdp_.parse_fmt(String_.new_a7(Replace_or(tmp_bfr, date_trie, date_bry, 3, date_or)), "dd-MM-yyyy HH:mm");
int size_bgn = Bry_finder.Find_fwd_while_space_or_tab(src, date_end, src_len); if (size_bgn == Bry_finder.Not_found) {Gfo_usr_dlg_.I.Warn_many("", "", "size_bgn not found"); break;}
- size_end = Bry_finder.Find_fwd(src, Byte_ascii.CarriageReturn, size_bgn, src_len);
+ size_end = Bry_finder.Find_fwd(src, Byte_ascii.Cr, size_bgn, src_len);
byte[] size_bry = Bry_.Mid(src, size_bgn, size_end);
long size = Long_.parse_or_(String_.new_u8(size_bry), -1);
Wmf_latest_itm itm = new Wmf_latest_itm(name, date, size);
diff --git a/400_xowa/src/gplx/xowa/specials/Xows_mgr.java b/400_xowa/src/gplx/xowa/specials/Xows_mgr.java
index 17e21584b..469bbc56c 100644
--- a/400_xowa/src/gplx/xowa/specials/Xows_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/Xows_mgr.java
@@ -19,7 +19,7 @@ package gplx.xowa.specials; import gplx.*; import gplx.xowa.*;
import gplx.xowa.users.history.*;
import gplx.xowa.specials.*;
import gplx.xowa.specials.allPages.*; import gplx.xowa.specials.search.*; import gplx.xowa.specials.nearby.*; import gplx.xowa.specials.randoms.*; import gplx.xowa.specials.statistics.*; import gplx.xowa.xtns.translates.*; import gplx.xowa.specials.movePage.*;
-import gplx.xowa.specials.xowa.system_data.*; import gplx.xowa.specials.xowa.default_tab.*; import gplx.xowa.specials.xowa.popup_history.*; import gplx.xowa.specials.xowa.file_browsers.*; import gplx.xowa.specials.xowa.bookmarks.*;
+import gplx.xowa.specials.xowa.system_data.*; import gplx.xowa.specials.xowa.default_tab.*; import gplx.xowa.specials.xowa.popup_history.*; import gplx.xowa.specials.xowa.file_browsers.*; import gplx.xowa.specials.xowa.bookmarks.*; import gplx.xowa.specials.xowa.diags.*;
import gplx.xowa.xtns.wdatas.specials.*;
import gplx.xowa.users.data.*;
public class Xows_mgr {
@@ -47,6 +47,7 @@ public class Xows_mgr {
public Popup_history_page Page_popup_history() {return page_popup_history;} private final Popup_history_page page_popup_history = new Popup_history_page();
public Xosp_fbrow_special Page_file_browser() {return page_file_browser;} private final Xosp_fbrow_special page_file_browser = new Xosp_fbrow_special();
public Xows_bmk_page Page_bmk() {return page_bmk;} private final Xows_bmk_page page_bmk = new Xows_bmk_page();
+ public Xows_diag_page Page_diag() {return page_diag;} private final Xows_diag_page page_diag = new Xows_diag_page();
public void Evt_lang_changed(Xol_lang lang) {
hash.Clear();
hash.Add_str_obj(Xows_special_meta_.Key__search , page_search);
@@ -67,6 +68,7 @@ public class Xows_mgr {
hash.Add_str_obj(Xows_special_meta_.Key__popup_history , page_popup_history);
hash.Add_str_obj(Xows_special_meta_.Key__file_browser , page_file_browser);
hash.Add_str_obj(Xows_special_meta_.Key__bookmarks , page_bmk);
+ hash.Add_str_obj(Xows_special_meta_.Key__diag , page_diag);
}
public void Special_gen(Xowe_wiki wiki, Xoae_page page, Xoa_url url, Xoa_ttl ttl) {
int slash_pos = Bry_finder.Find_fwd(ttl.Page_txt_wo_qargs(), Xoa_ttl.Subpage_spr); // check for slash
diff --git a/400_xowa/src/gplx/xowa/specials/Xows_special_meta_.java b/400_xowa/src/gplx/xowa/specials/Xows_special_meta_.java
index 6d8267a92..08a93ba8f 100644
--- a/400_xowa/src/gplx/xowa/specials/Xows_special_meta_.java
+++ b/400_xowa/src/gplx/xowa/specials/Xows_special_meta_.java
@@ -34,6 +34,7 @@ public class Xows_special_meta_ {
, Uid__nearby = 13
, Uid__page_history = 14
, Uid__bookmarks = 15
+ , Uid__diag = 16
;
public static final String
Key__all_pages = "AllPages"
@@ -51,6 +52,7 @@ public class Xows_special_meta_ {
, Key__nearby = "Nearby"
, Key__page_history = "XowaHistory"
, Key__bookmarks = "XowaBookmarks"
+ , Key__diag = "XowaDiag"
;
public static final Xows_special_meta
Itm__all_pages = new Xows_special_meta(Src__mw , Uid__all_pages , Key__all_pages)
@@ -68,5 +70,6 @@ public class Xows_special_meta_ {
, Itm__nearby = new Xows_special_meta(Src__xowa , Uid__nearby , Key__nearby)
, Itm__page_history = new Xows_special_meta(Src__xowa , Uid__page_history , Key__page_history)
, Itm__bookmarks = new Xows_special_meta(Src__xowa , Uid__bookmarks , Key__bookmarks)
+ , Itm__diag = new Xows_special_meta(Src__xowa , Uid__diag , Key__diag)
;
}
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xog_search_suggest_mgr.java b/400_xowa/src/gplx/xowa/specials/search/Xog_search_suggest_mgr.java
index 78142830a..1ab95ed34 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xog_search_suggest_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xog_search_suggest_mgr.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.specials.search; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*;
import gplx.gfui.*; import gplx.core.threads.*; import gplx.xowa.gui.*; import gplx.xowa.gui.views.*; import gplx.xowa.wikis.data.tbls.*;
-import gplx.web.js.*;
+import gplx.core.js.*;
public class Xog_search_suggest_mgr implements GfoInvkAble {
public Xog_search_suggest_mgr(Xoa_gui_mgr gui_mgr) {
this.app = gui_mgr.App();
@@ -79,21 +79,21 @@ public class Xog_search_suggest_mgr implements GfoInvkAble {
return; // do not notify if search terms do not match
}
List_adp found = cur_cmd.Results();
- wtr.Add_str(cbk_func);
- wtr.Add_paren_bgn();
- wtr.Add_str_quote(search_bry).Add_comma();
- wtr.Add_brack_bgn();
- int len = found.Count();
- for (int i = 0; i < len; i++) {
- Xowd_page_itm p = (Xowd_page_itm)found.Get_at(i);
- Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(p.Ns_id());
- byte[] ttl = Xoa_ttl.Replace_unders(ns.Gen_ttl(p.Ttl_page_db()));
- wtr.Add_str_arg(i, ttl);
- }
- wtr.Add_brack_end();
- wtr.Add_paren_end_semic();
+ wtr.Func_init(cbk_func);
+ wtr.Prm_bry(search_bry);
+ wtr.Prm_spr();
+ wtr.Ary_init();
+ int len = found.Count();
+ for (int i = 0; i < len; i++) {
+ Xowd_page_itm p = (Xowd_page_itm)found.Get_at(i);
+ Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(p.Ns_id());
+ byte[] ttl = Xoa_ttl.Replace_unders(ns.Gen_ttl(p.Ttl_page_db()));
+ wtr.Ary_bry(ttl);
+ }
+ wtr.Ary_term();
+ wtr.Func_term();
if (log_enabled) app.Usr_dlg().Log_many("", "", "search end: word=~{0}", String_.new_u8(search_bry));
- main_win.Active_html_box().Html_js_eval_script(wtr.Xto_str_and_clear());
+ main_win.Active_html_box().Html_js_eval_script(wtr.To_str_and_clear());
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_search_async)) Search_async();
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xosrh_qry_itm.java b/400_xowa/src/gplx/xowa/specials/search/Xosrh_qry_itm.java
index 2e55c3a91..bbded5cdd 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xosrh_qry_itm.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xosrh_qry_itm.java
@@ -50,10 +50,10 @@ class Xosrh_qry_itm {
byte wiki_db_tid = wiki.Db_mgr().Tid();
if (wiki_db_tid == Xodb_mgr_sql.Tid_sql
&& wiki.Appe().Gui_mgr().Search_suggest_mgr().Auto_wildcard()) { // HACK: auto-asterisk words for sqlite; DATE:2013-09-05
- if (!Bry_.Has_at_end(search_word, new byte[] {Byte_ascii.Asterisk}))
- search_word = Bry_.Add(search_word, Byte_ascii.Asterisk);
- if (!Bry_.Has_at_bgn(search_word, new byte[] {Byte_ascii.Asterisk}))
- search_word = Bry_.Add(Byte_ascii.Asterisk, search_word);
+ if (!Bry_.Has_at_end(search_word, new byte[] {Byte_ascii.Star}))
+ search_word = Bry_.Add(search_word, Byte_ascii.Star);
+ if (!Bry_.Has_at_bgn(search_word, new byte[] {Byte_ascii.Star}))
+ search_word = Bry_.Add(Byte_ascii.Star, search_word);
}
wiki.Db_mgr().Load_mgr().Load_search(cancelable, found, search_word, results_max);
List_adp rv = List_adp_.new_();
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xosrh_scanner.java b/400_xowa/src/gplx/xowa/specials/search/Xosrh_scanner.java
index d21f3dafd..2c72e35e8 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xosrh_scanner.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xosrh_scanner.java
@@ -118,7 +118,7 @@ class Xosrh_scanner {
byte[] cur_word = Bry_.Mid(src, src_bgn, src_end);
byte[][] words = gplx.xowa.bldrs.cmds.texts.Xob_search_base.Split_ttl_into_words(null, tmp_list, tmp_bfr, cur_word);
int words_len = words.length;
- if (words_len == 1 && !Bry_.Eq(words[0], cur_word) && Bry_finder.Find_fwd(cur_word, Byte_ascii.Asterisk) == -1) {
+ if (words_len == 1 && !Bry_.Eq(words[0], cur_word) && Bry_finder.Find_fwd(cur_word, Byte_ascii.Star) == -1) {
tkns.Add(Xosrh_qry_tkn.new_bry_(tid, words[0]));
return;
}
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher.java b/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher.java
index d1f1ce994..4c5d8a4ff 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher.java
@@ -21,7 +21,7 @@ public class Xows_db_matcher {
private final Gfo_pattern raw_pattern;
public Xows_db_matcher(int tid, byte[] raw, Xows_db_matcher lhs, Xows_db_matcher rhs) {
this.tid = tid; this.raw = raw; this.lhs = lhs; this.rhs = rhs;
- this.raw_pattern = Bry_.Has(raw, Byte_ascii.Asterisk) ? new Gfo_pattern(raw) : null;
+ this.raw_pattern = Bry_.Has(raw, Byte_ascii.Star) ? new Gfo_pattern(raw) : null;
}
public int Tid() {return tid;} private final int tid;
public int Page_count() {return page_count;} public void Page_count_(int v) {page_count = v;} private int page_count;
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher_bldr.java b/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher_bldr.java
index 9336adbca..7c176d41c 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher_bldr.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xows_db_matcher_bldr.java
@@ -28,7 +28,7 @@ class Xows_db_matcher_bldr {
switch (matcher.Tid()) {
case Xows_db_matcher.Tid_word:
byte[] word_text = matcher.Raw();
- if (Bry_.Has(word_text, Byte_ascii.Asterisk))
+ if (Bry_.Has(word_text, Byte_ascii.Star))
Load_word_many(cxl, rv, word_text, word_tbl);
else
Load_word_one(rv, word_text, word_tbl);
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xows_ns_mgr.java b/400_xowa/src/gplx/xowa/specials/search/Xows_ns_mgr.java
index 71024db45..b2c2eefb1 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xows_ns_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xows_ns_mgr.java
@@ -47,7 +47,7 @@ public class Xows_ns_mgr {
int ns_enabled = Bry_.Xto_int(val);
if (ns_enabled == 1) { // make sure set to 1; EX: ignore &ns0=0
int key_len = key.length;
- if (key_len == 3 && key[2] == Byte_ascii.Asterisk) // translate ns* as ns_all
+ if (key_len == 3 && key[2] == Byte_ascii.Star) // translate ns* as ns_all
ns_all = true;
else {
int ns_id = Bry_.Xto_int_or(key, 2, key_len, Int_.MinValue);
@@ -77,5 +77,5 @@ public class Xows_ns_mgr {
return tmp_bfr.Xto_bry_and_clear();
}
}
- private static final byte[] Hash_key_all = new byte[] {Byte_ascii.Asterisk}, Hash_key_main = new byte[] {Byte_ascii.Num_0};
+ private static final byte[] Hash_key_all = new byte[] {Byte_ascii.Star}, Hash_key_main = new byte[] {Byte_ascii.Num_0};
}
diff --git a/400_xowa/src/gplx/xowa/specials/search/Xows_page__search.java b/400_xowa/src/gplx/xowa/specials/search/Xows_page__search.java
index 5b943edad..1b270decd 100644
--- a/400_xowa/src/gplx/xowa/specials/search/Xows_page__search.java
+++ b/400_xowa/src/gplx/xowa/specials/search/Xows_page__search.java
@@ -61,9 +61,9 @@ public class Xows_page__search implements Xows_page, GfoInvkAble, GfoEvObj {
}
if ( search_suggest_mgr.Auto_wildcard() // add * automatically if option set
&& wiki.Db_mgr().Tid() == gplx.xowa.dbs.Xodb_mgr_sql.Tid_sql // only apply to sql
- && Bry_finder.Find_fwd(search_bry, Byte_ascii.Asterisk) == -1 // search term does not have asterisk
+ && Bry_finder.Find_fwd(search_bry, Byte_ascii.Star) == -1 // search term does not have asterisk
)
- search_bry = Bry_.Add(search_bry, Byte_ascii.Asterisk);
+ search_bry = Bry_.Add(search_bry, Byte_ascii.Star);
url.Page_bry_(Bry_.Add(Xows_special_meta_.Itm__search.Ttl_bry(), Byte_ascii.Slash_bry, search_bry));// HACK: need to re-set Page b/c href_parser does not eliminate qargs; DATE:2013-02-08
// search wiki
Xoa_ttl search_ttl = Xoa_ttl.parse_(wiki, search_bry);
diff --git a/400_xowa/src/gplx/xowa/specials/search/parsers/Xows_text_parser__v1.java b/400_xowa/src/gplx/xowa/specials/search/parsers/Xows_text_parser__v1.java
index a4020f7bc..4336ff22d 100644
--- a/400_xowa/src/gplx/xowa/specials/search/parsers/Xows_text_parser__v1.java
+++ b/400_xowa/src/gplx/xowa/specials/search/parsers/Xows_text_parser__v1.java
@@ -40,12 +40,12 @@ class Xows_text_parser__v1 {
switch (b) {
case Byte_ascii.Underline: // underline is word-breaking; EX: A_B -> A, B
case Byte_ascii.Space: // should not occur, but just in case (only underscores)
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: // should not occur in titles, but just in case
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: // should not occur in titles, but just in case
case Byte_ascii.Dash: // treat hypenated words separately
case Byte_ascii.Dot: // treat abbreviations as separate words; EX: A.B.C.
case Byte_ascii.Bang: case Byte_ascii.Hash: case Byte_ascii.Dollar: case Byte_ascii.Percent:
- case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk:
+ case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star:
case Byte_ascii.Comma: case Byte_ascii.Slash:
case Byte_ascii.Colon: case Byte_ascii.Semic: case Byte_ascii.Gt:
case Byte_ascii.Question: case Byte_ascii.At: case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end:
diff --git a/400_xowa/src/gplx/xowa/specials/search/parsers_old/Xow_search_scanner.java b/400_xowa/src/gplx/xowa/specials/search/parsers_old/Xow_search_scanner.java
index 1529c8d4f..92bf7e295 100644
--- a/400_xowa/src/gplx/xowa/specials/search/parsers_old/Xow_search_scanner.java
+++ b/400_xowa/src/gplx/xowa/specials/search/parsers_old/Xow_search_scanner.java
@@ -121,7 +121,7 @@ class Xow_search_scanner {
int words_len = words.length;
if ( words_len == 1 // only one word
&& !Bry_.Eq(words[0], cur_word) // split word not same as raw
- && Bry_finder.Find_fwd(cur_word, Byte_ascii.Asterisk) == -1 // no asterisk
+ && Bry_finder.Find_fwd(cur_word, Byte_ascii.Star) == -1 // no asterisk
) {
tkns.Add(Xow_search_tkn.new_bry(tid, words[0]));
return;
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/diags/Db_rdr_utl.java b/400_xowa/src/gplx/xowa/specials/xowa/diags/Db_rdr_utl.java
new file mode 100644
index 000000000..98518c041
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/specials/xowa/diags/Db_rdr_utl.java
@@ -0,0 +1,73 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.specials.xowa.diags; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*; import gplx.xowa.specials.xowa.*;
+import gplx.dbs.*;
+import gplx.dbs.engines.mems.*;
+class Db_rdr_utl {
+ public static void Load_and_write(Db_conn conn, String sql, Bry_bfr bfr) {
+ Write_to_bfr(bfr, Load(conn, sql));
+ }
+ public static Mem_qry_set Load_as_qry_set(Db_conn conn, Db_meta_fld_list fld_list, String sql) {
+ Mem_qry_set qry_set = new Mem_qry_set();
+ DataRdr rdr = conn.Exec_sql_as_rdr(sql);
+ try {
+ int fld_count = rdr.FieldCount();
+ while (rdr.MoveNextPeer()) {
+ Mem_row row = new Mem_row();
+ for (int i = 0; i < fld_count; ++i)
+ row.Add(fld_list.Get_at(i).Name(), rdr.ReadAt(i));
+ qry_set.Add(row);
+ }
+ }
+ finally {
+ rdr.Rls();
+ }
+ return qry_set;
+ }
+ public static Object[][] Load(Db_conn conn, String sql) {
+ List_adp list = List_adp_.new_();
+ DataRdr rdr = conn.Exec_sql_as_rdr(sql);
+ try {
+ int fld_count = rdr.FieldCount();
+ while (rdr.MoveNextPeer()) {
+ Object[] row = new Object[fld_count];
+ for (int i = 0; i < fld_count; ++i) {
+ row[i] = rdr.ReadAt(i);
+ }
+ list.Add(row);
+ }
+ }
+ finally {
+ rdr.Rls();
+ }
+ return (Object[][])list.To_ary_and_clear(Object[].class);
+ }
+ public static void Write_to_bfr(Bry_bfr bfr, Object[][] rows, int... skip) {
+ int rows_len = rows.length;
+ for (int i = 0; i < rows_len; ++i) {
+ Object[] row = (Object[])rows[i];
+ int row_len = row.length;
+ for (int j = 0; j < row_len; ++j) {
+ if (skip != null && Int_.In(j, skip)) continue;
+ Object val = row[j];
+ bfr.Add_obj(val).Add_byte_pipe();
+ }
+ bfr.Add_byte_nl();
+ }
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__file_check.java b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__file_check.java
new file mode 100644
index 000000000..cebc46add
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__file_check.java
@@ -0,0 +1,137 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.specials.xowa.diags; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*; import gplx.xowa.specials.xowa.*;
+import gplx.fsdb.*; import gplx.fsdb.meta.*;
+import gplx.xowa.files.origs.*;
+class Xows_cmd__file_check {
+ private Io_url tmp_dir;
+ public void Exec(Bry_bfr bfr, Xoa_app app, Xoa_url url, Xoa_url_arg_hash arg_hash) {
+ byte[] wiki_bry = arg_hash.Get_val_bry_or(Arg_wiki, null); if (wiki_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no wiki: url=~{0}", url.Raw()); return;}
+ byte[] file_bry = arg_hash.Get_val_bry_or(Arg_file, null); if (file_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no file: url=~{0}", url.Raw()); return;}
+ Xow_wiki wiki = app.Wiki_mgri().Get_by_key_or_make_init_y(wiki_bry);
+ tmp_dir = wiki.Fsys_mgr().Tmp_dir();
+ boolean schema_1 = wiki.File__fsdb_core().File__schema_is_1();
+ Fsdb_db_file atr_main = null;
+ try {Write_kv(bfr, "machine.op_sys", Op_sys.Cur().Os_name());} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "app.version", Xoa_app_.Version);} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "cfg_file_retrieve", ((Xoae_app)app).File_mgr().Wmf_mgr().Enabled());} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "fsdb.schema_is_1", schema_1);} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "fsdb.mnt_file", wiki.File__fsdb_core().File__mnt_file().Url());} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "fsdb.abc_file", wiki.File__fsdb_core().File__abc_file__at(Fsm_mnt_mgr.Mnt_idx_main).Url());} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {
+ atr_main = wiki.File__fsdb_core().File__atr_file__at(Fsm_mnt_mgr.Mnt_idx_main);
+ Write_kv(bfr, "fsdb.atr_file", atr_main.Url());
+ } catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ try {Write_kv(bfr, "fsdb.orig", wiki.File__fsdb_core().File__orig_tbl_ary()[0].Conn().Conn_info().Xto_raw());} catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ Fsdb_sql_mkr sql_mkr = schema_1 ? Fsdb_sql_mkr__v1.I : Fsdb_sql_mkr__v2.I;
+ String sql = "";
+ try {
+ Xof_orig_tbl orig_tbl = wiki.File__fsdb_core().File__orig_tbl_ary()[0];
+ sql = sql_mkr.Orig_by_ttl(file_bry);
+ Write_sect(bfr, "fsdb.orig.select", sql);
+ Db_rdr_utl.Load_and_write(orig_tbl.Conn(), sql, bfr);
+ } catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ Object[][] rows = null;
+ try {
+ sql = sql_mkr.Fil_by_ttl(file_bry);
+ Write_sect(bfr, "fsdb.fil.select", sql);
+ rows = Db_rdr_utl.Load(atr_main.Conn(), sql);
+ Db_rdr_utl.Write_to_bfr(bfr, rows);
+ Write_thms(bfr, file_bry, sql_mkr, wiki.File__mnt_mgr().Mnts__get_main(), atr_main, rows);
+ } catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ }
+ private void Write_thms(Bry_bfr bfr, byte[] file_bry, Fsdb_sql_mkr sql_mkr, Fsm_mnt_itm mnt_itm, Fsdb_db_file atr_main, Object[][] rows) {
+ int rows_len = rows.length;
+ for (int i = 0; i < rows_len; ++i) {
+ Object[] row = rows[i];
+ int file_id = Int_.cast_(row[0]);
+ String sql = sql_mkr.Thm_by_id(file_id);
+ Write_sect(bfr, "fsdb.thm.select", sql);
+ Object[][] thm_rows = Db_rdr_utl.Load(atr_main.Conn(), sql);
+ Db_rdr_utl.Write_to_bfr(bfr, thm_rows);
+ Write_bins(bfr, file_bry, sql_mkr, mnt_itm, thm_rows, 0, 6);
+ Object bin_db_id_obj = row[4];
+ if (bin_db_id_obj != null) {
+ Write_bins(bfr, file_bry, sql_mkr, mnt_itm, rows, 0, 4);
+ }
+ }
+ }
+ private void Write_bins(Bry_bfr bfr, byte[] file_bry, Fsdb_sql_mkr sql_mkr, Fsm_mnt_itm mnt_itm, Object[][] rows, int owner_id_ordinal, int bin_db_id_ordinal) {
+ int rows_len = rows.length;
+ for (int i = 0; i < rows_len; ++i) {
+ Object[] row = rows[i];
+ int bin_db_id = Int_.cast_(row[bin_db_id_ordinal]); if (bin_db_id == -1) continue;
+ Fsm_bin_fil bin_db = mnt_itm.Bin_mgr().Dbs__get_at(bin_db_id);
+ int owner_id = Int_.cast_(row[owner_id_ordinal]);
+ String sql = sql_mkr.Bin_by_id(owner_id);
+ Write_sect(bfr, "fsdb.bin.select", sql);
+ Object[][] bin_rows = Db_rdr_utl.Load(bin_db.Conn(), sql);
+ Db_rdr_utl.Write_to_bfr(bfr, bin_rows, 4);
+ Export_bins(bfr, file_bry, bin_rows, 0, 4);
+ }
+ }
+ private void Export_bins(Bry_bfr bfr, byte[] file_bry, Object[][] rows, int owner_id_ordinal, int bin_data_ordinal) {
+ int rows_len = rows.length;
+ Bry_bfr tmp_bfr = Bry_bfr.new_();
+ for (int i = 0; i < rows_len; ++i) {
+ Object[] row = rows[i];
+ int owner_id = Int_.cast_(row[owner_id_ordinal]);
+ byte[] bin_data = (byte[])row[bin_data_ordinal];
+ file_bry = gplx.xowa.files.repos.Xof_repo_itm_.Ttl_invalid_fsys_chars(tmp_bfr, file_bry);
+ Io_url bin_url = tmp_dir.GenSubFil(String_.new_u8(file_bry));
+ bin_url = tmp_dir.GenSubFil(bin_url.NameOnly() + "_" + Int_.Xto_str(owner_id) + bin_url.Ext());
+ Write_kv(bfr, "fsdb.bin.export", bin_url.Raw());
+ Write_kv(bfr, "fsdb.bin.len", bin_data.length);
+ Io_mgr.I.SaveFilBry(bin_url, bin_data);
+ }
+ }
+ private static void Write_kv(Bry_bfr bfr, String key, Object val) {
+ bfr.Add_str_u8(key);
+ bfr.Add_str_a7(" = ");
+ bfr.Add_obj(val);
+ bfr.Add_byte_nl();
+ }
+ private static void Write_sect(Bry_bfr bfr, String key, Object val) {
+ bfr.Add_byte_nl();
+ bfr.Add_str_u8("------------------------------------------------------").Add_byte_nl();
+ bfr.Add_str_u8(key).Add_str_a7(": ").Add_obj(val).Add_byte_nl();
+ bfr.Add_str_u8("------------------------------------------------------").Add_byte_nl();
+ }
+ private static final byte[] Arg_wiki = Bry_.new_a7("wiki"), Arg_file = Bry_.new_a7("file");
+ public static final Xows_cmd__file_check I = new Xows_cmd__file_check(); Xows_cmd__file_check() {}
+}
+interface Fsdb_sql_mkr {
+ String Orig_by_ttl(byte[] ttl);
+ String Fil_by_ttl(byte[] ttl);
+ String Thm_by_id(int id);
+ String Bin_by_id(int id);
+}
+abstract class Fsdb_sql_mkr__base {
+ public String Fil_by_ttl(byte[] ttl) {return String_.Format("SELECT * FROM fsdb_fil WHERE fil_name = '{0}';", ttl);}
+ public String Bin_by_id(int id) {return String_.Format("SELECT * FROM fsdb_bin WHERE bin_owner_id = {0};", id);}
+}
+class Fsdb_sql_mkr__v1 extends Fsdb_sql_mkr__base implements Fsdb_sql_mkr {
+ public String Orig_by_ttl(byte[] ttl) {return String_.Format("SELECT * FROM wiki_orig WHERE orig_ttl = '{0}';", ttl);}
+ public String Thm_by_id(int id) {return String_.Format("SELECT * FROM fsdb_xtn_thm WHERE thm_owner_id = {0};", id);}
+ public static final Fsdb_sql_mkr I = new Fsdb_sql_mkr__v1(); Fsdb_sql_mkr__v1() {}
+}
+class Fsdb_sql_mkr__v2 extends Fsdb_sql_mkr__base implements Fsdb_sql_mkr {
+ public String Orig_by_ttl(byte[] ttl) {return String_.Format("SELECT * FROM orig_reg WHERE orig_ttl = '{0}';", ttl);}
+ public String Thm_by_id(int id) {return String_.Format("SELECT * FROM fsdb_thm WHERE thm_owner_id = {0};", id);}
+ public static final Fsdb_sql_mkr I = new Fsdb_sql_mkr__v2(); Fsdb_sql_mkr__v2() {}
+}
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__fs_check.java b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__fs_check.java
new file mode 100644
index 000000000..ba0ca6788
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__fs_check.java
@@ -0,0 +1,59 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.specials.xowa.diags; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*; import gplx.xowa.specials.xowa.*;
+import gplx.ios.*;
+import gplx.fsdb.meta.*;
+class Xows_cmd__fs_check {
+ public void Exec(Bry_bfr bfr, Xoa_app app, Xoa_url url, Xoa_url_arg_hash arg_hash) {
+ byte[] dir_bry = arg_hash.Get_val_bry_or(Arg_dir, null);
+ if (dir_bry != null) {
+ Write_dir(bfr, Io_url_.new_dir_(String_.new_u8(dir_bry)));
+ return;
+ }
+ byte[] wiki_bry = arg_hash.Get_val_bry_or(Arg_wiki, null); if (wiki_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no wiki: url=~{0}", url.Raw()); return;}
+ Xow_wiki wiki = app.Wiki_mgri().Get_by_key_or_make_init_y(wiki_bry);
+ Io_url wiki_dir = wiki.Fsys_mgr().Root_dir();
+ Io_url file_dir = wiki.Fsys_mgr().File_dir();
+ Write_dir(bfr, wiki_dir);
+ Write_dir(bfr, file_dir);
+ Write_dir(bfr, file_dir.GenSubDir(Fsm_mnt_tbl.Mnt_name_main));
+ Write_dir(bfr, file_dir.GenSubDir(Fsm_mnt_tbl.Mnt_name_user));
+ Write_dir(bfr, file_dir.GenSubDir("fsdb.update_00"));
+ }
+ private void Write_dir(Bry_bfr bfr, Io_url dir_url) {
+ bfr.Add_byte_nl().Add_str_a7("scanning: ").Add_str_u8(dir_url.Raw()).Add_byte_nl();
+ if (!Io_mgr.I.ExistsDir(dir_url)) return;
+ IoItmDir dir_itm = Io_mgr.I.QueryDir_args(dir_url).Recur_(false).DirInclude_(true).ExecAsDir();
+ IoItmList sub_itms = dir_itm.SubDirs(); int len = sub_itms.Count();
+ for (int i = 0; i < len; ++i) {
+ try {
+ IoItmDir sub_itm = (IoItmDir)sub_itms.Get_at(i);
+ bfr.Add_str_a7("dir").Add_byte_pipe().Add_str_u8(sub_itm.Name()).Add_byte_nl();
+ } catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ }
+ sub_itms = dir_itm.SubFils(); len = sub_itms.Count();
+ for (int i = 0; i < len; ++i) {
+ try {
+ IoItmFil sub_itm = (IoItmFil)sub_itms.Get_at(i);
+ bfr.Add_str_a7("fil").Add_byte_pipe().Add_str_u8(sub_itm.Name()).Add_byte_pipe().Add_long_variable(sub_itm.Size()).Add_byte_pipe().Add_dte(sub_itm.ModifiedTime()).Add_byte_nl();
+ } catch (Exception e) {bfr.Add_str_u8(Err_.Message_gplx(e));}
+ }
+ }
+ public static final Xows_cmd__fs_check I = new Xows_cmd__fs_check(); Xows_cmd__fs_check() {}
+ private static final byte[] Arg_wiki = Bry_.new_a7("wiki"), Arg_dir = Bry_.new_a7("dir");
+}
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__sql_dump.java b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__sql_dump.java
new file mode 100644
index 000000000..8b6de59b8
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_cmd__sql_dump.java
@@ -0,0 +1,51 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.specials.xowa.diags; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*; import gplx.xowa.specials.xowa.*;
+import gplx.ios.*; import gplx.core.primitives.*;
+import gplx.dbs.*;
+import gplx.fsdb.meta.*;
+class Xows_cmd__sql_dump {
+ public void Exec(Bry_bfr bfr, Xoa_app app, Xoa_url url, Xoa_url_arg_hash arg_hash) {
+ Db_conn conn = null;
+ byte[] sql_bry = arg_hash.Get_val_bry_or(Arg_sql, null); if (sql_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no sql: url=~{0}", url.Raw()); return;}
+ byte[] wiki_bry = arg_hash.Get_val_bry_or(Arg_wiki, null);
+ if (wiki_bry == null) {
+ byte[] db_file_bry = arg_hash.Get_val_bry_or(Arg_db_file, null); if (db_file_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no db_type: url=~{0}", url.Raw()); return;}
+ conn = Db_conn_bldr.I.Get(Io_url_.new_fil_(String_.new_u8(db_file_bry)));
+ }
+ else {
+ byte[] db_type_bry = arg_hash.Get_val_bry_or(Arg_db_type, null); if (db_type_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no db_type: url=~{0}", url.Raw()); return;}
+ Xow_wiki wiki = app.Wiki_mgri().Get_by_key_or_make_init_y(wiki_bry);
+ Byte_obj_val db_type_val = (Byte_obj_val)db_type_hash.Get_by_bry(db_type_bry); if (db_type_val == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; bad db_type: url=~{0}", url.Raw()); return;}
+ switch (db_type_val.Val()) {
+ case Db_type_wiki_core: conn = wiki.Data__core_mgr().Db__core().Conn(); break;
+ case Db_type_fsdb_abc: conn = wiki.File__fsdb_core().File__abc_file__at(Fsm_mnt_mgr.Mnt_idx_main).Conn(); break;
+ case Db_type_fsdb_atr: conn = wiki.File__fsdb_core().File__atr_file__at(Fsm_mnt_mgr.Mnt_idx_main).Conn(); break;
+ }
+ }
+ Db_rdr_utl.Load_and_write(conn, String_.new_u8(sql_bry), bfr);
+ }
+ public static final Xows_cmd__sql_dump I = new Xows_cmd__sql_dump(); Xows_cmd__sql_dump() {}
+ private static final byte[] Arg_wiki = Bry_.new_a7("wiki"), Arg_db_file = Bry_.new_a7("db_file"), Arg_db_type = Bry_.new_a7("db_type"), Arg_sql = Bry_.new_a7("sql");
+ private static final byte Db_type_fsdb_abc = 1, Db_type_fsdb_atr = 2, Db_type_wiki_core = 3;
+ private static final Hash_adp_bry db_type_hash = Hash_adp_bry.cs_()
+ .Add_str_byte("fsdb.abc" , Db_type_fsdb_abc)
+ .Add_str_byte("fsdb.atr" , Db_type_fsdb_atr)
+ .Add_str_byte("wiki.core" , Db_type_wiki_core)
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_diag_page.java b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_diag_page.java
new file mode 100644
index 000000000..d22b227fa
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/specials/xowa/diags/Xows_diag_page.java
@@ -0,0 +1,44 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.specials.xowa.diags; import gplx.*; import gplx.xowa.*; import gplx.xowa.specials.*; import gplx.xowa.specials.xowa.*;
+import gplx.core.primitives.*;
+public class Xows_diag_page implements Xows_page {
+ private Xoa_url_arg_hash arg_hash = new Xoa_url_arg_hash();
+ public Xows_special_meta Special_meta() {return Xows_special_meta_.Itm__diag;}
+ public void Special_gen(Xowe_wiki wiki, Xoae_page page, Xoa_url url, Xoa_ttl ttl) {
+ arg_hash.Load(url);
+ byte[] cmd_type_bry = arg_hash.Get_val_bry_or(Arg_type, null); if (cmd_type_bry == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; no type: url=~{0}", url.Raw()); return;}
+ Byte_obj_val cmd_type_val = (Byte_obj_val)type_hash.Get_by_bry(cmd_type_bry); if (cmd_type_val == null) {Xoa_app_.Usr_dlg().Warn_many("", "", "special.cmd; bad type: url=~{0}", url.Raw()); return;}
+ Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_m001();
+ bfr.Add_str_a7("\n");
+ switch (cmd_type_val.Val()) {
+ case Type_file_check: Xows_cmd__file_check.I.Exec(bfr, wiki.App(), url, arg_hash); break;
+ case Type_fs_check: Xows_cmd__fs_check.I.Exec(bfr, wiki.App(), url, arg_hash); break;
+ case Type_sql_dump: Xows_cmd__sql_dump.I.Exec(bfr, wiki.App(), url, arg_hash); break;
+ }
+ bfr.Add_str_a7("
\n");
+ page.Data_raw_(bfr.Xto_bry_and_clear());
+ }
+ private static final byte[] Arg_type = Bry_.new_a7("type");
+ private static final byte Type_file_check = 1, Type_fs_check = 2, Type_sql_dump = 3;
+ private static final Hash_adp_bry type_hash = Hash_adp_bry.cs_()
+ .Add_str_byte("file.check" , Type_file_check)
+ .Add_str_byte("fs.check" , Type_fs_check)
+ .Add_str_byte("sql.dump" , Type_sql_dump)
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/specials/xowa/popup_history/Popup_history_page.java b/400_xowa/src/gplx/xowa/specials/xowa/popup_history/Popup_history_page.java
index 22b4b757d..5ad756425 100644
--- a/400_xowa/src/gplx/xowa/specials/xowa/popup_history/Popup_history_page.java
+++ b/400_xowa/src/gplx/xowa/specials/xowa/popup_history/Popup_history_page.java
@@ -29,7 +29,7 @@ public class Popup_history_page implements Xows_page {
if (Ttl_chk(itm.Page_ttl())) continue;
fmtr_main.Bld_bfr_many(bfr, itm.Page_href(), itm.Page_ttl().Full_txt());
}
- page.Data_raw_(bfr.Trim_end(Byte_ascii.NewLine).To_bry_and_rls());
+ page.Data_raw_(bfr.Trim_end(Byte_ascii.Nl).To_bry_and_rls());
page.Html_data().Html_restricted_n_();
}
private Bry_fmtr fmtr_main = Bry_fmtr.new_("~{ttl}\n\n", "href", "ttl"); // NOTE: need to use anchor (as opposed to lnki or lnke) b/c xwiki will not work on all wikis
diff --git a/400_xowa/src/gplx/xowa/tdbs/Xotdb_page_raw_parser.java b/400_xowa/src/gplx/xowa/tdbs/Xotdb_page_raw_parser.java
index 21794172a..e83469588 100644
--- a/400_xowa/src/gplx/xowa/tdbs/Xotdb_page_raw_parser.java
+++ b/400_xowa/src/gplx/xowa/tdbs/Xotdb_page_raw_parser.java
@@ -34,7 +34,7 @@ public class Xotdb_page_raw_parser {
} Io_line_rdr rdr; Xowe_wiki wiki; Xow_ns_mgr ns_mgr; Xow_ns ns_itm;
public void Skip_first_line() {
rdr.Read_next();
- int pos = Bry_finder.Find_fwd(rdr.Bfr(), Byte_ascii.NewLine);
+ int pos = Bry_finder.Find_fwd(rdr.Bfr(), Byte_ascii.Nl);
// rdr.Move(pos + 1);
rdr.Truncate(pos + 1);
}
diff --git a/400_xowa/src/gplx/xowa/users/Xoue_user.java b/400_xowa/src/gplx/xowa/users/Xoue_user.java
index 36341eb92..b8b90a304 100644
--- a/400_xowa/src/gplx/xowa/users/Xoue_user.java
+++ b/400_xowa/src/gplx/xowa/users/Xoue_user.java
@@ -120,7 +120,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
}
}
private void Available_from_bulk(byte[] raw) {
- byte[][] wikis = Bry_.Split(raw, Byte_ascii.NewLine);
+ byte[][] wikis = Bry_.Split(raw, Byte_ascii.Nl);
Xowe_wiki usr_wiki = Wiki();
int wikis_len = wikis.length;
for (int i = 0; i < wikis_len; i++)
diff --git a/400_xowa/src/gplx/xowa/users/Xouv_user.java b/400_xowa/src/gplx/xowa/users/Xouv_user.java
index 13c07074f..561b9b41d 100644
--- a/400_xowa/src/gplx/xowa/users/Xouv_user.java
+++ b/400_xowa/src/gplx/xowa/users/Xouv_user.java
@@ -25,7 +25,7 @@ public class Xouv_user implements Xou_user {
public Xouv_user(String key) {this.key = key;}
public String Key() {return key;} private String key;
public Xou_db_mgr User_db_mgr() {return user_db_mgr;} private Xou_db_mgr user_db_mgr;
- public Xow_wiki Wikii() {if (wiki == null) wiki = wiki_mgr.Get_by_key_or_make_2(Xow_domain_.Domain_bry_home); return wiki;} private Xow_wiki wiki;
+ public Xow_wiki Wikii() {if (wiki == null) wiki = wiki_mgr.Get_by_key_or_make_init_y(Xow_domain_.Domain_bry_home); return wiki;} private Xow_wiki wiki;
public void Init_db(Xoa_app app, Xoa_wiki_mgr wiki_mgr, Io_url db_url) {
this.wiki_mgr = wiki_mgr;
this.user_db_mgr = new Xou_db_mgr(app);
diff --git a/400_xowa/src/gplx/xowa/users/data/Html_grid_wtr.java b/400_xowa/src/gplx/xowa/users/data/Html_grid_wtr.java
new file mode 100644
index 000000000..a9d564316
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/users/data/Html_grid_wtr.java
@@ -0,0 +1,143 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
+class Hgrid_tbl_data {
+ public Hgrid_tbl_data(Hgrid_col_data[] cols, Hgrid_row_data[] rows) {this.cols = cols; this.rows = rows;}
+ public Hgrid_col_data[] Cols() {return cols;} private final Hgrid_col_data[] cols;
+ public Hgrid_row_data[] Rows() {return rows;} private final Hgrid_row_data[] rows;
+}
+class Hgrid_col_data {
+ public Hgrid_col_data(int type, String key, String display) {this.type = type; this.key = key; this.display = display;}
+ public int Type() {return type;} private final int type;
+ public String Key() {return key;} private final String key;
+ public String Display() {return display;} private final String display;
+ public static final int Type_id_str = 1;
+}
+class Hgrid_row_data {
+ public Hgrid_row_data(Hgrid_tbl_data tbl, String pkey, Hgrid_cell_data[] cells, Hgrid_btn_data[] btns) {this.tbl = tbl; this.pkey = pkey; this.cells = cells; this.btns = btns;}
+ public Hgrid_tbl_data Tbl() {return tbl;} private final Hgrid_tbl_data tbl;
+ public String Pkey() {return pkey;} private final String pkey;
+ public Hgrid_cell_data[] Cells() {return cells;} private Hgrid_cell_data[] cells;
+ public Hgrid_btn_data[] Btns() {return btns;} private Hgrid_btn_data[] btns;
+}
+class Hgrid_cell_data {
+ public Hgrid_cell_data(String data, String html) {this.data = data; this.html = html;}
+ public String Data() {return data;} private final String data;
+ public String Html() {return html;} private final String html;
+}
+class Hgrid_btn_data {
+ public Hgrid_btn_data(String cmd, String img, String text) {this.cmd = cmd; this.img = img; this.text = text;}
+ public String Cmd() {return cmd;} private final String cmd;
+ public String Img() {return img;} private final String img;
+ public String Text() {return text;} private final String text;
+}
+class Hgrid_tbl_fmtr {
+ private final Hgrid_head_row_fmtr head_row_fmtr = new Hgrid_head_row_fmtr();
+ private final Hgrid_data_rows_fmtr data_rows_fmtr = new Hgrid_data_rows_fmtr();
+ public void Write(Bry_bfr bfr, Hgrid_tbl_data data) {
+ tbl_fmtr.Bld_bry_many(bfr, head_row_fmtr.Init(data), data_rows_fmtr.Init(data));
+ }
+ private static final Bry_fmtr tbl_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ ( ""
+ , " ~{head_cells}"
+ , "
~{data_rows}"
+ , "
"
+ ), "head_cells", "data_rows");
+}
+class Hgrid_head_row_fmtr implements Bry_fmtr_arg {
+ private Hgrid_tbl_data data;
+ public Hgrid_head_row_fmtr Init(Hgrid_tbl_data data) {this.data = data; return this;}
+ public void XferAry(Bry_bfr bfr, int idx) {
+ Hgrid_col_data[] cols = data.Cols(); int len = cols.length;
+ for (int i = 0; i < len; ++i) {
+ Hgrid_col_data col = cols[i];
+ fmtr.Bld_bfr_many(bfr, col.Display());
+ }
+ }
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ ( " ~{display} | "
+ ), "display");
+}
+class Hgrid_data_rows_fmtr implements Bry_fmtr_arg {
+ private final Hgrid_data_cell_fmtr cells_fmtr = new Hgrid_data_cell_fmtr();
+ private Hgrid_tbl_data data;
+ public Hgrid_data_rows_fmtr Init(Hgrid_tbl_data data) {this.data = data; return this;}
+ public void XferAry(Bry_bfr bfr, int idx) {
+ Hgrid_row_data[] rows = data.Rows(); int len = rows.length;
+ for (int i = 0; i < len; ++i) {
+ Hgrid_row_data row = rows[i];
+ fmtr.Bld_bfr_many(bfr, i, row.Pkey(), cells_fmtr.Init(i, row));
+ }
+ }
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ ( " ~{cells}~{cmds}"
+ , "
"
+ ), "id", "pkey", "cells");
+}
+class Hgrid_data_cell_fmtr implements Bry_fmtr_arg {
+ private int row_idx; private Hgrid_row_data data;
+ public Hgrid_data_cell_fmtr Init(int row_idx, Hgrid_row_data data) {this.row_idx = row_idx; this.data = data; return this;}
+ public void XferAry(Bry_bfr bfr, int idx) {
+ Hgrid_cell_data[] cells = data.Cells(); int len = cells.length;
+ Hgrid_col_data[] cols = data.Tbl().Cols();
+ for (int i = 0; i < len; ++i) {
+ Hgrid_cell_data cell = cells[i];
+ fmtr.Bld_bfr_many(bfr, row_idx, cols[i].Key(), i, cell.Data(), cell.Html());
+ }
+ }
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ ( " ~{html} | "
+ ), "row", "col", "idx", "data", "html");
+}
+class Hgrid_row_btns_fmtr implements Bry_fmtr_arg {
+ private int row_idx; private Hgrid_row_data data;
+ public Hgrid_row_btns_fmtr Init(int row_idx, Hgrid_row_data data) {this.row_idx = row_idx; this.data = data; return this;}
+ public void XferAry(Bry_bfr bfr, int idx) {
+ Hgrid_btn_data[] btns = data.Btns(); int len = btns.length;
+ for (int i = 0; i < len; ++i) {
+ Hgrid_btn_data btn = btns[i];
+ fmtr.Bld_bfr_many(bfr, row_idx, btn.Cmd(), btn.Img(), btn.Text());
+ }
+ }
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ ( "
"
+ ), "row", "cmd", "img", "text");
+}
+/*
+
+*/
diff --git a/400_xowa/src/gplx/xowa/users/data/Xoud_bmk_tbl.java b/400_xowa/src/gplx/xowa/users/data/Xoud_bmk_tbl.java
index b3e50f008..088b2441a 100644
--- a/400_xowa/src/gplx/xowa/users/data/Xoud_bmk_tbl.java
+++ b/400_xowa/src/gplx/xowa/users/data/Xoud_bmk_tbl.java
@@ -40,7 +40,7 @@ public class Xoud_bmk_tbl implements RlsAble {
}
public Xoud_bmk_row[] Select_all() {
List_adp list = List_adp_.new_();
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Clear().Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Clear().Exec_select__rls_auto();
try {
while (rdr.Move_next())
list.Add(new_row(rdr));
diff --git a/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope.java b/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope.java
index e51afddee..8760516a5 100644
--- a/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope.java
+++ b/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope.java
@@ -48,7 +48,7 @@ class Xoud_opt_scope_parser {
public Xoud_opt_scope Parse_itm(byte[] src, int bgn, int end) {
int lang_dot = Bry_finder.Find_fwd(src, Byte_ascii.Dot, bgn, end); if (lang_dot == Bry_finder.Not_found) return Warn("scope.parse.missing_lang_dot: src=~{0}", src, bgn, end);
int lang_id = Int_.MinValue;
- if (lang_dot == 1 && src[bgn] == Byte_ascii.Asterisk)
+ if (lang_dot == 1 && src[bgn] == Byte_ascii.Star)
lang_id = Xoud_opt_scope.Lang_id_wildcard;
else {
Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key_or_null(src, bgn, lang_dot); if (lang_itm == null) return Warn("scope.parse.invalid_lang: src=~{0}", src, bgn, end);
diff --git a/400_xowa/src/gplx/xowa/users/data/Xoud_user_tbl.java b/400_xowa/src/gplx/xowa/users/data/Xoud_user_tbl.java
index f7047928b..98dbad26b 100644
--- a/400_xowa/src/gplx/xowa/users/data/Xoud_user_tbl.java
+++ b/400_xowa/src/gplx/xowa/users/data/Xoud_user_tbl.java
@@ -58,7 +58,7 @@ class Xoud_user_tbl {
}
public int Select_id_next() {
int rv = 1;
- Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy).Exec_select__rls_auto();
+ Db_rdr rdr = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
int cur = rdr.Read_int(fld_id);
diff --git a/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr.java b/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr.java
index 79f0851fb..223067dda 100644
--- a/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr.java
+++ b/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
import gplx.core.primitives.*; import gplx.html.*; import gplx.gfui.*;
+import gplx.xowa.gui.views.*;
public class Prefs_mgr implements GfoInvkAble {
public Prefs_mgr(Xoae_app app) {
this.app = app;
@@ -27,7 +28,7 @@ public class Prefs_mgr implements GfoInvkAble {
html_wtr = new Prefs_html_wtr(this);
} private Xoae_app app; private Hash_adp_bry atrs_hash; private Html_parser html_rdr = new Html_parser(); private Prefs_html_wtr html_wtr;
private Prefs_trg_mgr option_trgs_mgr = new Prefs_trg_mgr();
- public void Html_box_mok_(Gfui_html v) {this.html_box_mok = v;} private Gfui_html html_box_mok;
+ public void Html_box_mok_(Xog_html_itm v) {this.html_box_mok = v;} private Xog_html_itm html_box_mok;
public byte[] Props_get(byte[] src) {
// option_trgs_mgr.Init(app.Gui_mgr().Browser_win().Active_page().Url());
if (props_get_fmtr == null) props_get_fmtr = Bry_fmtr.keys_().Eval_mgr_(app.Gfs_mgr().Eval_mgr());
@@ -76,14 +77,14 @@ public class Prefs_mgr implements GfoInvkAble {
if (eval_code == null) eval_code = hnde.Atrs_val_by_key_bry(Bry_prop_set);
String hnde_val = null;
String hnde_key = "xowa_prop_" + Int_.Xto_str(i);
- Gfui_html html_box = html_box_mok == null ? app.Gui_mgr().Browser_win().Active_tab().Html_itm().Html_box() : html_box_mok; // TEST:
+ Xog_html_itm html_itm = html_box_mok == null ? app.Gui_mgr().Browser_win().Active_tab().Html_itm() : html_box_mok; // TEST:
byte elem_tid = Prefs_mgr.Elem_tid_tid_of(hnde);
switch (elem_tid) {
case Elem_tid_input_text:
case Elem_tid_input_xowa_io:
- case Elem_tid_select: hnde_val = html_box.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value); break;
- case Elem_tid_textarea: hnde_val = Html_utl.Unescape_as_str(html_box.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
- case Elem_tid_input_checkbox: hnde_val = html_box.Html_elem_atr_get_bool(hnde_key, "checked") ? "y" : "n"; break;
+ case Elem_tid_select: hnde_val = html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value); break;
+ case Elem_tid_textarea: hnde_val = Html_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
+ case Elem_tid_input_checkbox: hnde_val = html_itm.Html_elem_atr_get_bool(hnde_key, "checked") ? "y" : "n"; break;
}
byte[] get_cmd = Props_get(eval_code);
Object get_val = Eval_run(Bry_.Add(get_cmd, Byte_ascii.Semic));
diff --git a/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr_tst.java b/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr_tst.java
index 3209ba001..78ec3498a 100644
--- a/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/users/prefs/Prefs_mgr_tst.java
@@ -18,6 +18,7 @@ along with this program. If not, see .
package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
import org.junit.*;
import gplx.gfui.*; import gplx.xowa.apps.*;
+import gplx.xowa.gui.views.*;
public class Prefs_mgr_tst {
private Prefs_mgr_fxt fxt = new Prefs_mgr_fxt();
@Before public void init() {fxt.Clear();}
@@ -167,8 +168,12 @@ class Prefs_mgr_fxt {
Tfds.Eq(expd, actl);
}
}
-class Gfui_html_mok extends Gfui_html { private Hash_adp elem_atrs = Hash_adp_.new_();
+class Gfui_html_mok extends Xog_html_itm { private Hash_adp elem_atrs = Hash_adp_.new_();
public void Html_elem_atr_add(String elem_id, String atr_key, Object atr_val) {elem_atrs.Add_if_dupe_use_nth(elem_id + "." + atr_key, atr_val);}
- @Override public String Html_elem_atr_get_str(String elem_id, String atr_key) {return (String)elem_atrs.Get_by(elem_id + "." + atr_key);}
- @Override public boolean Html_elem_atr_get_bool(String elem_id, String atr_key) {return Bool_.parse_((String)elem_atrs.Get_by(elem_id + "." + atr_key));}
+ @Override public String Html_elem_atr_get_str(String id, String atr_key) {
+ return (String)elem_atrs.Get_by(id + "." + atr_key);
+ }
+ @Override public boolean Html_elem_atr_get_bool(String id, String atr_key) {
+ return Bool_.parse_((String)elem_atrs.Get_by(id + "." + atr_key));
+ }
}
diff --git a/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr.java
index a8fa97a2f..926a320e7 100644
--- a/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr.java
@@ -17,6 +17,6 @@ along with this program. If not, see .
*/
package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*;
public interface Xoa_wiki_mgr {
- Xow_wiki Get_by_key_or_make_2(byte[] key);
- Xow_wiki Get_by_key_or_make_3(byte[] key);
+ Xow_wiki Get_by_key_or_make_init_y(byte[] key);
+ Xow_wiki Get_by_key_or_make_init_n(byte[] key);
}
diff --git a/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
index b74ddb302..d7b706a9a 100644
--- a/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
@@ -37,13 +37,13 @@ public class Xoae_wiki_mgr implements Xoa_wiki_mgr, GfoInvkAble {
public Xowe_wiki Get_at(int i) {return Int_.Between(i, 0, this.Count() - 1) ? (Xowe_wiki)list.Get_at(i) : null;}
public Xowe_wiki Get_by_key_or_null(byte[] key) {return Bry_.Len_eq_0(key) ? null : (Xowe_wiki)hash.Get_by(key);}
public Xowe_wiki Get_by_key_or_null(byte[] src, int bgn, int end) {return (Xowe_wiki)hash.Get_by_mid(src, bgn, end);}
- public Xow_wiki Get_by_key_or_make_2(byte[] key) {
+ public Xow_wiki Get_by_key_or_make_init_y(byte[] key) {
Xowe_wiki rv = this.Get_by_key_or_null(key);
if (rv == null) rv = New_wiki(key);
rv.Init_assert();
return rv;
}
- public Xow_wiki Get_by_key_or_make_3(byte[] key) {return Get_by_key_or_make(key);}
+ public Xow_wiki Get_by_key_or_make_init_n(byte[] key) {return Get_by_key_or_make(key);}
public Xowe_wiki Get_by_key_or_make(byte[] key) {
Xowe_wiki rv = this.Get_by_key_or_null(key);
if (rv == null) rv = New_wiki(key);
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_file_schema_props.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_file_schema_props.java
index e497dd84a..0bc1a3655 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_file_schema_props.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_file_schema_props.java
@@ -32,8 +32,7 @@ public class Xowd_db_file_schema_props {
}
public static final String Grp = Xow_cfg_consts.Grp__wiki_schema;
public static final String
- Key__col_page_html_text_id = "col.page.page_html_text_id"
- , Key__tbl_css_core = "tbl.css_core" // VERSION:2.4.1
+ Key__tbl_css_core = "tbl.css_core" // VERSION:2.4.1
, Key__col_search_word_page_count = "col.search_word.word_page_count" // VERSION:2.4.2
;
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_mgr.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_mgr.java
index 8e943515e..f90a259e1 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_db_mgr.java
@@ -89,7 +89,6 @@ public class Xowd_db_mgr {
db__core.Tbl__cat_link().Create_tbl();
}
Dbs__add_and_save(db__core);
- db__core.Tbl__cfg().Insert_yn(Xow_cfg_consts.Grp__wiki_schema, Xowd_db_file_schema_props.Key__col_page_html_text_id, Bool_.Y);
props.Cfg_save(db__core.Tbl__cfg()); // NOTE: must save cfg now, especially zip_tid; latter will be reloaded after import is done;
conn.Txn_end();
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_core_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_core_tbl.java
index b6d59b795..acce74a55 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_core_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_core_tbl.java
@@ -51,7 +51,7 @@ public class Xowd_cat_core_tbl implements RlsAble {
public void Update_by_batch(int id, byte hidden) {
stmt_update.Clear().Val_byte(fld_hidden, hidden).Crt_int(fld_id, id).Exec_update();
}
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();;}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();;}
public Xowd_category_itm Select(int id) {
if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_id);
Db_rdr rdr = stmt_select.Clear().Crt_int(fld_id, id).Exec_select__rls_manual();
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_link_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_link_tbl.java
index 3e2108ca9..552f422dd 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_link_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_cat_link_tbl.java
@@ -50,7 +50,7 @@ public class Xowd_cat_link_tbl implements RlsAble {
.Val_int(fld_timestamp , timestamp)
.Exec_insert();
}
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
public int Select_by_type(List_adp list, int cat_page_id, byte arg_tid, byte[] arg_sortkey, boolean arg_is_from, int limit) {
String arg_sortkey_str = arg_sortkey == null ? "" : String_.new_u8(arg_sortkey);
gplx.core.criterias.Criteria comp_crt = !arg_is_from
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_html_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_html_tbl.java
index 3cdfa8ef6..eaf8d9ba6 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_html_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_html_tbl.java
@@ -61,14 +61,11 @@ public class Xowd_html_tbl implements RlsAble {
stmt_select = Db_stmt_.Rls(stmt_select);
}
public static void Assert_col__page_html_db_id(Xowd_db_mgr db_mgr) {
- Db_cfg_tbl cfg_tbl = db_mgr.Tbl__cfg();
- String exists = cfg_tbl.Select_str_or(Xow_cfg_consts.Grp__wiki_schema, Xowd_db_file_schema_props.Key__col_page_html_text_id, "n");
- if (String_.Eq(exists, "y")) return;
- Xowd_page_tbl pg_tbl = db_mgr.Tbl__page();
- Db_conn conn = db_mgr.Db__core().Conn();
- conn.Ddl_append_fld(pg_tbl.Tbl_name(), pg_tbl.Fld_html_db_id()); // TODO: currently NULL; change to NOT NULL DEFAULT -1; ALTER TABLE page ADD html_db_id int NULL;
-// conn.Ddl_append_fld(pg_tbl.Tbl_name(), pg_tbl.Fld_page_redirect_id()); // TODO: currently NULL; change to NOT NULL DEFAULT -1; ALTER TABLE page ADD html_db_id int NULL;
- cfg_tbl.Insert_yn(Xow_cfg_consts.Grp__wiki_schema, Xowd_db_file_schema_props.Key__col_page_html_text_id, Bool_.Y);
- pg_tbl.Hdump_enabled_(Bool_.Y);
+ Xowd_page_tbl page_tbl = db_mgr.Tbl__page(); Db_conn page_conn = page_tbl.Conn();
+ boolean html_flds_exists = page_conn.Meta_fld_exists(page_tbl.Tbl_name(), page_tbl.Fld_html_db_id());
+ if (html_flds_exists) return;
+ page_conn.Ddl_append_fld(page_tbl.Tbl_name(), Db_meta_fld.new_int(page_tbl.Fld_html_db_id()).Default_(-1));
+ page_conn.Ddl_append_fld(page_tbl.Tbl_name(), Db_meta_fld.new_int(page_tbl.Fld_redirect_id()).Default_(-1));
+ page_tbl.Hdump_enabled_(Bool_.Y);
}
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_tbl.java
index 26e2af975..d34297665 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_tbl.java
@@ -29,7 +29,8 @@ public class Xowd_page_tbl implements RlsAble {
public String Fld_page_ns() {return fld_ns;}
public String Fld_page_title() {return fld_title;}
public String Fld_page_len() {return fld_len;}
- public Db_meta_fld Fld_html_db_id() {return flds.Get_by(fld_html_db_id);}
+ public String Fld_html_db_id() {return fld_html_db_id;}
+ public String Fld_redirect_id() {return fld_redirect_id;}
public String[] Flds_select_idx() {return flds_select_idx;}
public String[] Flds_select_all() {return flds_select_all;}
public Db_conn Conn() {return conn;}
@@ -162,7 +163,7 @@ public class Xowd_page_tbl implements RlsAble {
if (Bry_.Len_eq_0(search)) return; // do not allow empty search
Criteria crt = Criteria_.And_many(Db_crt_.eq_(fld_ns, Xow_ns_.Id_main), Db_crt_.like_(fld_title, ""));
Db_qry__select_cmd qry = Db_qry_.select_().From_(tbl_name).Cols_(fld_id, fld_len, fld_ns, fld_title).Where_(crt); // NOTE: use fields from main index only
- search = Bry_.Replace(search, Byte_ascii.Asterisk, Byte_ascii.Percent);
+ search = Bry_.Replace(search, Byte_ascii.Star, Byte_ascii.Percent);
Db_rdr rdr = conn.Stmt_new(qry).Clear().Crt_int(fld_ns, Xow_ns_.Id_main).Val_bry_as_str(fld_title, search).Exec_select__rls_auto();
try {
while (rdr.Move_next()) {
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_search_word_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_search_word_tbl.java
index f6ca4e167..f25b6fc0c 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_search_word_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_search_word_tbl.java
@@ -56,7 +56,7 @@ public class Xowd_search_word_tbl implements RlsAble {
stmt_select_in = conn.Stmt_new(qry);
}
List_adp list = List_adp_.new_();
- Db_rdr rdr = stmt_select_in.Clear().Crt_bry_as_str(fld_text, Bry_.Replace(word, Byte_ascii.Asterisk, Byte_ascii.Percent)).Exec_select__rls_manual();
+ Db_rdr rdr = stmt_select_in.Clear().Crt_bry_as_str(fld_text, Bry_.Replace(word, Byte_ascii.Star, Byte_ascii.Percent)).Exec_select__rls_manual();
try {
int row_count = 0;
while (rdr.Move_next()) {
@@ -72,8 +72,8 @@ public class Xowd_search_word_tbl implements RlsAble {
}
public void Select_by_word(Cancelable cancelable, Xowd_search_link_tbl search_page_tbl, List_adp rv, byte[] search, int results_max) {
gplx.core.criterias.Criteria crt = null;
- if (Bry_.Has(search, Byte_ascii.Asterisk)) {
- search = Bry_.Replace(search, Byte_ascii.Asterisk, Byte_ascii.Percent);
+ if (Bry_.Has(search, Byte_ascii.Star)) {
+ search = Bry_.Replace(search, Byte_ascii.Star, Byte_ascii.Percent);
crt = Db_crt_.like_ (fld_text, String_.new_u8(search));
}
else
@@ -97,9 +97,9 @@ public class Xowd_search_word_tbl implements RlsAble {
flds.Add_int_dflt("word_page_count", 0);
}
public void Ddl__page_count__add(Xowd_search_link_tbl link_tbl, Db_cfg_tbl cfg_tbl) {
- Db_meta_fld page_count_fld = new Db_meta_fld("word_page_count", Db_meta_fld.Tid_int, Db_meta_fld.Len_null, Bool_.N, Bool_.N, Bool_.N, 0);
+ Db_meta_fld page_count_fld = Db_meta_fld.new_int("word_page_count").Default_(0);
conn.Txn_bgn();
- conn.Ddl_append_fld(tbl_name, page_count_fld); // ALTER TABLE search_word ADD word_page_count integer NOT NULL DEFAULT 0;
+ conn.Ddl_append_fld(tbl_name, page_count_fld); // SQL: ALTER TABLE search_word ADD word_page_count integer NOT NULL DEFAULT 0;
String sql = String_.Format(String_.Concat_lines_nl_skip_last
( "REPLACE INTO {0} ({1}, {2}, word_page_count)"
, "SELECT w.{1}"
@@ -114,7 +114,7 @@ public class Xowd_search_word_tbl implements RlsAble {
);
conn.Exec_sql_plog_ntx("calculating page count per word (please wait)", sql);
Ddl__page_count__cfg(cfg_tbl);
- fld_page_count = page_count_fld.Name(); flds.Add_itm(page_count_fld); this.Rls();
+ fld_page_count = page_count_fld.Name(); flds.Add(page_count_fld); this.Rls();
conn.Txn_end();
}
public void Ddl__page_count__cfg(Db_cfg_tbl cfg_tbl) {
diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java
index 738730007..815864ff9 100644
--- a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java
@@ -61,7 +61,7 @@ public class Xow_xwiki_mgr implements GfoInvkAble {
return (Xow_domain[])rv.To_ary_and_clear(Xow_domain.class);
}
public void Add_bulk(byte[] raw) {
- byte[][] rows = Bry_.Split(raw, Byte_ascii.NewLine);
+ byte[][] rows = Bry_.Split(raw, Byte_ascii.Nl);
int rows_len = rows.length;
Hash_adp_bry lang_regy = Xol_lang_itm_.Regy();
for (int i = 0; i < rows_len; i++) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_mgr.java b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_mgr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_mgr.java
rename to 400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_mgr.java
index 977c90577..6a848cd8f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_mgr.java
+++ b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_mgr.java
@@ -15,7 +15,8 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.wmfs; import gplx.*; import gplx.xowa.*;
+import gplx.xowa.wmfs.data.*;
public class Xow_wmf_api_mgr {
public void Trg_engine_key(String v) {this.trg_engine_key = v;} private String trg_engine_key = gplx.ios.IoEngine_.SysKey;
public void Api_exec(Xow_wmf_api_wkr wkr) {this.Api_exec(Wikis, wkr);}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr.java b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr.java
rename to 400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr.java
index d1de8cb88..71c45c50e 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr.java
+++ b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr.java
@@ -15,7 +15,8 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.wmfs; import gplx.*; import gplx.xowa.*;
+import gplx.xowa.wmfs.data.*;
public interface Xow_wmf_api_wkr {
void Api_init();
void Api_term();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr__ns.java b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr__ns.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr__ns.java
rename to 400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr__ns.java
index 34019e6d0..6ebc050f6 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xow_wmf_api_wkr__ns.java
+++ b/400_xowa/src/gplx/xowa/wmfs/Xow_wmf_api_wkr__ns.java
@@ -15,9 +15,10 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.wmfs; import gplx.*; import gplx.xowa.*;
import gplx.json.*;
-class Xow_wmf_api_wkr__ns implements Xow_wmf_api_wkr {
+import gplx.xowa.wmfs.data.*;
+public class Xow_wmf_api_wkr__ns implements Xow_wmf_api_wkr {
private final Json_parser parser = new Json_parser();
private final Xowmf_site_tbl tbl_site; private final Xowmf_ns_tbl tbl_ns;
private int site_id_next = 1;
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_extensions_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_extensions_tbl.java
new file mode 100644
index 000000000..1ed91c9a6
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_extensions_tbl.java
@@ -0,0 +1,69 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+class Xowmf_extensions_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_extensions"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_type, fld_name, fld_descriptionmsg, fld_author, fld_url, fld_version
+ , fld_vcs_system, fld_vcs_version, fld_vcs_url, fld_vcs_date, fld_license_name, fld_license, fld_credits;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert;
+ public Xowmf_extensions_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_type = flds.Add_str("type", 255);
+ this.fld_name = flds.Add_str("name", 255);
+ this.fld_descriptionmsg = flds.Add_str("descriptionmsg", 255);
+ this.fld_author = flds.Add_str("author", 255);
+ this.fld_url = flds.Add_str("url", 255);
+ this.fld_version = flds.Add_str("version", 255);
+ this.fld_vcs_system = flds.Add_str("vcs_system", 255);
+ this.fld_vcs_version = flds.Add_str("vcs_version", 255);
+ this.fld_vcs_url = flds.Add_str("vcs_url", 255);
+ this.fld_vcs_date = flds.Add_str("vcs_date", 255);
+ this.fld_license_name = flds.Add_str("license_name", 255);
+ this.fld_license = flds.Add_str("license", 255);
+ this.fld_credits = flds.Add_str("credits", 255);
+ conn.Rls_reg(this);
+ }
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ }
+ public void Insert(int site_id, String type, String name, String descriptionmsg, String author, String url, String version
+ , String vcs_system, String vcs_version, String vcs_url, String vcs_date, String license_name, String license, String credits) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear()
+ .Val_int(fld_site_id , site_id)
+ .Val_str(fld_type , type)
+ .Val_str(fld_name , name)
+ .Val_str(fld_descriptionmsg , descriptionmsg)
+ .Val_str(fld_author , author)
+ .Val_str(fld_url , url)
+ .Val_str(fld_version , version)
+ .Val_str(fld_vcs_system , vcs_system)
+ .Val_str(fld_vcs_version , vcs_version)
+ .Val_str(fld_vcs_url , vcs_url)
+ .Val_str(fld_vcs_date , vcs_date)
+ .Val_str(fld_license_name , license_name)
+ .Val_str(fld_license , license)
+ .Val_str(fld_credits , credits)
+ .Exec_insert();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xowmf_site_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_general_tbl.java
similarity index 63%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xowmf_site_tbl.java
rename to 400_xowa/src/gplx/xowa/wmfs/data/Xowmf_general_tbl.java
index 4b03ca677..882fb36f7 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xowmf_site_tbl.java
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_general_tbl.java
@@ -15,9 +15,9 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
import gplx.dbs.*;
-class Xowmf_general_tbl implements RlsAble {
+public class Xowmf_general_tbl implements RlsAble {
private static final String tbl_name = "wmf_general"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
private final String fld_site_id, fld_key, fld_val;
private final Db_conn conn;
@@ -35,7 +35,7 @@ class Xowmf_general_tbl implements RlsAble {
stmt_insert = Db_stmt_.Rls(stmt_insert);
stmt_select = Db_stmt_.Rls(stmt_select);
}
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
public void Insert(int site_id, String key, String val) {
if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
stmt_insert.Clear().Val_int(fld_site_id, site_id).Val_str(fld_key, key).Val_str(fld_val, val).Exec_insert();
@@ -231,121 +231,3 @@ class Xowmf_general_tbl implements RlsAble {
],
"favicon": "//bits.wikimedia.org/favicon/wikipedia.ico"
*/
-class Xowmf_json_tbl implements RlsAble {
- private static final String tbl_name = "wmf_json"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
- private final String fld_site_id, fld_text, fld_date;
- private final Db_conn conn;
- private Db_stmt stmt_insert, stmt_select;
- public Xowmf_json_tbl(Db_conn conn) {
- this.conn = conn;
- this.fld_site_id = flds.Add_int("site_id");
- this.fld_date = flds.Add_str("json_date", 20);
- this.fld_text = flds.Add_text("json_text");
- conn.Rls_reg(this);
- }
- public Db_conn Conn() {return conn;}
- public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
- public void Rls() {
- stmt_insert = Db_stmt_.Rls(stmt_insert);
- stmt_select = Db_stmt_.Rls(stmt_select);
- }
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
- public void Insert(int site_id, DateAdp date, byte[] text) {
- if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
- stmt_insert.Clear().Val_int(fld_site_id, site_id).Val_str(fld_date, date.XtoStr_gplx()).Val_bry_as_str(fld_text, text).Exec_insert();
- }
- public String Select_text_or_null(int site_id) {
- if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_site_id);
- Db_rdr rdr = stmt_select.Clear().Crt_int(fld_site_id, site_id).Exec_select__rls_manual();
- try {
- return rdr.Move_next() ? rdr.Read_str(fld_text) : null;
- }
- finally {rdr.Rls();}
- }
-}
-class Xowmf_site_tbl implements RlsAble {
- private static final String tbl_name = "wmf_site"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
- private final String fld_id, fld_name;
- private final Db_conn conn;
- private Db_stmt stmt_insert, stmt_select;
- public Xowmf_site_tbl(Db_conn conn) {
- this.conn = conn;
- this.fld_id = flds.Add_int_pkey("site_id");
- this.fld_name = flds.Add_str("site_name", 255);
- conn.Rls_reg(this);
- }
- public Db_conn Conn() {return conn;}
- public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "name", fld_name)));}
- public void Rls() {
- stmt_insert = Db_stmt_.Rls(stmt_insert);
- stmt_select = Db_stmt_.Rls(stmt_select);
- }
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
- public void Insert(int id, String name) {
- if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
- stmt_insert.Clear().Val_int(fld_id, id).Val_str(fld_name, name).Exec_insert();
- }
- public int Select_id(String name) {
- if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_name);
- Db_rdr rdr = stmt_select.Clear().Crt_str(fld_name, name).Exec_select__rls_manual();
- try {
- return rdr.Move_next() ? rdr.Read_int(fld_id) : -1;
- }
- finally {rdr.Rls();}
- }
- public static Db_conn Get_conn_or_new(Io_url xowa_root) {
- Io_url wmf_data_url = xowa_root.GenSubFil_nest("bin", "any", "xowa", "cfg", "wiki", "wmf_data.sqlite3");
- Db_conn_bldr_data conn_data = Db_conn_bldr.I.Get_or_new(wmf_data_url);
- Db_conn conn = conn_data.Conn();
- if (conn_data.Created()) {
- Xowmf_site_tbl site_tbl = new Xowmf_site_tbl(conn); site_tbl.Create_tbl();
- Xowmf_ns_tbl itm_tbl = new Xowmf_ns_tbl(conn); itm_tbl.Create_tbl();
- }
- return conn;
- }
-}
-class Xowmf_ns_tbl implements RlsAble {
- private static final String tbl_name = "wmf_ns"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
- private final String fld_site_id, fld_id, fld_case, fld_subpages, fld_content, fld_name, fld_canonical;
- private final Db_conn conn;
- private Db_stmt stmt_insert, stmt_select;
- public Xowmf_ns_tbl(Db_conn conn) {
- this.conn = conn;
- this.fld_site_id = flds.Add_int("site_id");
- this.fld_id = flds.Add_int("ns_id");
- this.fld_case = flds.Add_byte("ns_case");
- this.fld_subpages = flds.Add_byte("ns_subpages");
- this.fld_content = flds.Add_byte("ns_content");
- this.fld_name = flds.Add_str("ns_name", 255);
- this.fld_canonical = flds.Add_str("ns_canonical", 255);
- conn.Rls_reg(this);
- }
- public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id, fld_id)));}
- public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empy).Exec_delete();}
- public void Rls() {
- stmt_insert = Db_stmt_.Rls(stmt_insert);
- stmt_select = Db_stmt_.Rls(stmt_select);
- }
- public void Insert(int site_id, int id, byte case_match, boolean subpages, boolean content, byte[] name, byte[] canonical) {
- if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
- stmt_insert.Clear()
- .Val_int(fld_site_id, site_id).Val_int(fld_id, id).Val_byte(fld_case, case_match).Val_bool_as_byte(fld_subpages, subpages).Val_bool_as_byte(fld_content, content)
- .Val_bry_as_str(fld_name, name).Val_bry_as_str(fld_canonical, canonical).Exec_insert();
- }
- public void Select_all(Xow_ns_mgr rv, int site_id) {
- if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_site_id);
- Db_rdr rdr = stmt_select.Clear().Crt_int(fld_site_id, site_id).Exec_select__rls_manual();
- rv.Clear();
- try {
- while (rdr.Move_next()) {
- rv.Add_new
- ( rdr.Read_int (fld_id)
- , rdr.Read_bry_by_str (fld_name)
- , rdr.Read_byte (fld_case)
- , Bool_.N);
- }
- }
- finally {rdr.Rls();}
- rv.Init();
- }
-}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_interwikimap_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_interwikimap_tbl.java
new file mode 100644
index 000000000..e16068442
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_interwikimap_tbl.java
@@ -0,0 +1,53 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+class Xowmf_interwikimap_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_interwikimap"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_prefix, fld_local, fld_language, fld_localinterwiki, fld_url, fld_protorel;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert;
+ public Xowmf_interwikimap_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_prefix = flds.Add_str("prefix", 255);
+ this.fld_local = flds.Add_str("local", 255);
+ this.fld_language = flds.Add_str("language", 255);
+ this.fld_localinterwiki = flds.Add_str("localinterwiki", 255);
+ this.fld_url = flds.Add_str("url", 255);
+ this.fld_protorel = flds.Add_str("protorel", 255);
+ conn.Rls_reg(this);
+ }
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ }
+ public void Insert(int site_id, String prefix, String local, String language, String localinterwiki, String url, String protorel) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear()
+ .Val_int(fld_site_id , site_id)
+ .Val_str(fld_prefix , prefix)
+ .Val_str(fld_local , local)
+ .Val_str(fld_language , language)
+ .Val_str(fld_localinterwiki , localinterwiki)
+ .Val_str(fld_url , url)
+ .Val_str(fld_protorel , protorel)
+ .Exec_insert();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_json_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_json_tbl.java
new file mode 100644
index 000000000..37f6eb5c3
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_json_tbl.java
@@ -0,0 +1,51 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+public class Xowmf_json_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_json"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_text, fld_date;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert, stmt_select;
+ public Xowmf_json_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_date = flds.Add_str("json_date", 20);
+ this.fld_text = flds.Add_text("json_text");
+ conn.Rls_reg(this);
+ }
+ public Db_conn Conn() {return conn;}
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ stmt_select = Db_stmt_.Rls(stmt_select);
+ }
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Insert(int site_id, DateAdp date, byte[] text) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear().Val_int(fld_site_id, site_id).Val_str(fld_date, date.XtoStr_gplx()).Val_bry_as_str(fld_text, text).Exec_insert();
+ }
+ public String Select_text_or_null(int site_id) {
+ if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_site_id);
+ Db_rdr rdr = stmt_select.Clear().Crt_int(fld_site_id, site_id).Exec_select__rls_manual();
+ try {
+ return rdr.Move_next() ? rdr.Read_str(fld_text) : null;
+ }
+ finally {rdr.Rls();}
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_ns_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_ns_tbl.java
new file mode 100644
index 000000000..8d86ab013
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_ns_tbl.java
@@ -0,0 +1,64 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+public class Xowmf_ns_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_ns"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_id, fld_case, fld_subpages, fld_content, fld_name, fld_canonical;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert, stmt_select;
+ public Xowmf_ns_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_id = flds.Add_int("ns_id");
+ this.fld_case = flds.Add_byte("ns_case");
+ this.fld_subpages = flds.Add_byte("ns_subpages");
+ this.fld_content = flds.Add_byte("ns_content");
+ this.fld_name = flds.Add_str("ns_name", 255);
+ this.fld_canonical = flds.Add_str("ns_canonical", 255);
+ conn.Rls_reg(this);
+ }
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id, fld_id)));}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ stmt_select = Db_stmt_.Rls(stmt_select);
+ }
+ public void Insert(int site_id, int id, byte case_match, boolean subpages, boolean content, byte[] name, byte[] canonical) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear()
+ .Val_int(fld_site_id, site_id).Val_int(fld_id, id).Val_byte(fld_case, case_match).Val_bool_as_byte(fld_subpages, subpages).Val_bool_as_byte(fld_content, content)
+ .Val_bry_as_str(fld_name, name).Val_bry_as_str(fld_canonical, canonical).Exec_insert();
+ }
+ public void Select_all(Xow_ns_mgr rv, int site_id) {
+ if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_site_id);
+ Db_rdr rdr = stmt_select.Clear().Crt_int(fld_site_id, site_id).Exec_select__rls_manual();
+ rv.Clear();
+ try {
+ while (rdr.Move_next()) {
+ rv.Add_new
+ ( rdr.Read_int (fld_id)
+ , rdr.Read_bry_by_str (fld_name)
+ , rdr.Read_byte (fld_case)
+ , Bool_.N);
+ }
+ }
+ finally {rdr.Rls();}
+ rv.Init();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_site_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_site_tbl.java
new file mode 100644
index 000000000..007f33429
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_site_tbl.java
@@ -0,0 +1,60 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+public class Xowmf_site_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_site"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_id, fld_name;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert, stmt_select;
+ public Xowmf_site_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_id = flds.Add_int_pkey("site_id");
+ this.fld_name = flds.Add_str("site_name", 255);
+ conn.Rls_reg(this);
+ }
+ public Db_conn Conn() {return conn;}
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "name", fld_name)));}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ stmt_select = Db_stmt_.Rls(stmt_select);
+ }
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Insert(int id, String name) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear().Val_int(fld_id, id).Val_str(fld_name, name).Exec_insert();
+ }
+ public int Select_id(String name) {
+ if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_name);
+ Db_rdr rdr = stmt_select.Clear().Crt_str(fld_name, name).Exec_select__rls_manual();
+ try {
+ return rdr.Move_next() ? rdr.Read_int(fld_id) : -1;
+ }
+ finally {rdr.Rls();}
+ }
+ public static Db_conn Get_conn_or_new(Io_url xowa_root) {
+ Io_url wmf_data_url = xowa_root.GenSubFil_nest("bin", "any", "xowa", "cfg", "wiki", "wmf_data.sqlite3");
+ Db_conn_bldr_data conn_data = Db_conn_bldr.I.Get_or_new(wmf_data_url);
+ Db_conn conn = conn_data.Conn();
+ if (conn_data.Created()) {
+ Xowmf_site_tbl site_tbl = new Xowmf_site_tbl(conn); site_tbl.Create_tbl();
+ Xowmf_ns_tbl itm_tbl = new Xowmf_ns_tbl(conn); itm_tbl.Create_tbl();
+ }
+ return conn;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_specialpagealiases_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_specialpagealiases_tbl.java
new file mode 100644
index 000000000..c16e7ccd8
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_specialpagealiases_tbl.java
@@ -0,0 +1,45 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+class Xowmf_specialpagealiases_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_specialpagealiases"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_realname, fld_aliases;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert;
+ public Xowmf_specialpagealiases_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_realname = flds.Add_str("realname", 255);
+ this.fld_aliases = flds.Add_str("aliases", 2048);
+ conn.Rls_reg(this);
+ }
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ }
+ public void Insert(int site_id, String realname, String[] aliases) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear()
+ .Val_int(fld_site_id , site_id)
+ .Val_str(fld_realname , realname)
+ .Val_str(fld_aliases , String_.Concat_with_str("|", aliases))
+ .Exec_insert();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_statistics_tbl.java b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_statistics_tbl.java
new file mode 100644
index 000000000..0d169a2b6
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/wmfs/data/Xowmf_statistics_tbl.java
@@ -0,0 +1,57 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.wmfs.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wmfs.*;
+import gplx.dbs.*;
+class Xowmf_statistics_tbl implements RlsAble {
+ private static final String tbl_name = "wmf_statistics"; private final Db_meta_fld_list flds = new Db_meta_fld_list();
+ private final String fld_site_id, fld_pages, fld_articles, fld_edits, fld_images, fld_users, fld_activeusers, fld_admins, fld_queued_massmessages;
+ private final Db_conn conn;
+ private Db_stmt stmt_insert;
+ public Xowmf_statistics_tbl(Db_conn conn) {
+ this.conn = conn;
+ this.fld_site_id = flds.Add_int("site_id");
+ this.fld_pages = flds.Add_long("pages");
+ this.fld_articles = flds.Add_long("articles");
+ this.fld_edits = flds.Add_long("edits");
+ this.fld_images = flds.Add_long("images");
+ this.fld_users = flds.Add_long("users");
+ this.fld_activeusers = flds.Add_long("activeusers");
+ this.fld_admins = flds.Add_long("admins");
+ this.fld_queued_massmessages = flds.Add_long("queued_massmessages");
+ conn.Rls_reg(this);
+ }
+ public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_name(tbl_name, "main", fld_site_id)));}
+ public void Delete_all() {conn.Stmt_delete(tbl_name, Db_meta_fld.Ary_empty).Exec_delete();}
+ public void Rls() {
+ stmt_insert = Db_stmt_.Rls(stmt_insert);
+ }
+ public void Insert(int site_id, long pages, long articles, long edits, long images, long users, long activeusers, long admins, long queued_massmessages) {
+ if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
+ stmt_insert.Clear()
+ .Val_int(fld_site_id , site_id)
+ .Val_long(fld_pages , pages)
+ .Val_long(fld_articles , articles)
+ .Val_long(fld_edits , edits)
+ .Val_long(fld_images , images)
+ .Val_long(fld_users , users)
+ .Val_long(fld_activeusers , activeusers)
+ .Val_long(fld_admins , admins)
+ .Val_long(fld_queued_massmessages , queued_massmessages)
+ .Exec_insert();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/cite/Ref_html_wtr_cfg.java b/400_xowa/src/gplx/xowa/xtns/cite/Ref_html_wtr_cfg.java
index 13c5e7848..f419226a7 100644
--- a/400_xowa/src/gplx/xowa/xtns/cite/Ref_html_wtr_cfg.java
+++ b/400_xowa/src/gplx/xowa/xtns/cite/Ref_html_wtr_cfg.java
@@ -102,7 +102,7 @@ public class Ref_html_wtr_cfg {
boolean last = pos == len;
byte b = last ? Byte_ascii.Space : raw[pos];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab:
if (bgn != -1) { // guard against leading ws, or multiple ws; EX: "bos\s\s" or "\s\s"
list.Add(Bry_.Mid(raw, bgn, pos));
bgn = -1;
diff --git a/400_xowa/src/gplx/xowa/xtns/dynamicPageList/Dpl_itm.java b/400_xowa/src/gplx/xowa/xtns/dynamicPageList/Dpl_itm.java
index 9db099cfd..b50bb04d9 100644
--- a/400_xowa/src/gplx/xowa/xtns/dynamicPageList/Dpl_itm.java
+++ b/400_xowa/src/gplx/xowa/xtns/dynamicPageList/Dpl_itm.java
@@ -64,7 +64,7 @@ class Dpl_itm {
key_id = Dpl_itm_keys.Parse(src, fld_bgn, fld_end, Dpl_itm_keys.Key_null);
if (key_id == Dpl_itm_keys.Key_null) { // unknown key; warn and set pos to end of line; EX: "unknown=";
Parse_missing_key(usr_dlg, page_ttl, src, fld_bgn, fld_end);
- fld_bgn = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, pos);
+ fld_bgn = Bry_finder.Find_fwd(src, Byte_ascii.Nl, pos);
if (fld_bgn == Bry_.NotFound) loop = false;
}
else { // known key; set pos to val_bgn
@@ -92,7 +92,7 @@ class Dpl_itm {
++pos;
}
}
- private static final byte Dlm_fld = Byte_ascii.Eq, Dlm_row = Byte_ascii.NewLine;
+ private static final byte Dlm_fld = Byte_ascii.Eq, Dlm_row = Byte_ascii.Nl;
public void Parse_cmd(Xowe_wiki wiki, byte key_id, byte[] val) {
sub_root.Clear();
val = wiki.Parser().Parse_text_to_wtxt(sub_root, sub_ctx, sub_tkn_mkr, val);
diff --git a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_itm_parser.java b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_itm_parser.java
index dae1b9a48..0c6c1bb64 100644
--- a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_itm_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_itm_parser.java
@@ -143,8 +143,8 @@ public class Gallery_itm_parser {
cur_byte = src[cur_pos];
switch (cur_byte) {
case Byte_ascii.Pipe: return Mode_pipe;
- case Byte_ascii.NewLine: return Mode_nl;
- case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Nl: return Mode_nl;
+ case Byte_ascii.Cr:
case Byte_ascii.Space:
case Byte_ascii.Tab:
++cur_pos;
@@ -209,11 +209,11 @@ public class Gallery_itm_parser {
while (cur_pos < end_pos) {
cur_byte = src[cur_pos];
switch (cur_byte) {
- case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Cr:
case Byte_ascii.Space:
case Byte_ascii.Tab: ++cur_pos; continue; // ignore
case Byte_ascii.Pipe: return Mode_pipe;
- case Byte_ascii.NewLine: return Mode_nl;
+ case Byte_ascii.Nl: return Mode_nl;
default: return Mode_text;
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/hieros/Hiero_html_mgr.java b/400_xowa/src/gplx/xowa/xtns/hieros/Hiero_html_mgr.java
index 246a0d132..2c2058dac 100644
--- a/400_xowa/src/gplx/xowa/xtns/hieros/Hiero_html_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/hieros/Hiero_html_mgr.java
@@ -92,7 +92,7 @@ class Hiero_html_mgr {
switch (v[0]) {
case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end:
case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end:
- case Byte_ascii.Asterisk: case Byte_ascii.Colon: case Byte_ascii.Bang:
+ case Byte_ascii.Star: case Byte_ascii.Colon: case Byte_ascii.Bang:
amp = true;
break;
}
@@ -122,7 +122,7 @@ class Hiero_html_mgr {
total += line_max;
line_max = 0;
continue;
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
if (height > line_max)
line_max = height;
continue;
@@ -150,7 +150,7 @@ class Hiero_html_mgr {
case Byte_ascii.Colon:
temp_bfr.Add_str_a7("\n
");
continue;
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
temp_bfr.Add_byte_space();
continue;
}
diff --git a/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java b/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
index 8b13c8e51..47d838d24 100644
--- a/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
@@ -55,7 +55,7 @@ class Imap_parser {
if (itm_end == src_end) break;
itm_bgn = Bry_finder.Trim_fwd_space_tab(src, itm_end + 1, src_end); // trim ws at start, and look for first char
if (itm_bgn == src_end) break; // line is entirely ws and terminated by eos; EX: "\n EOS"
- itm_end = Bry_finder.Find_fwd_until(src, itm_bgn, src_end, Byte_ascii.NewLine); // look for \n
+ itm_end = Bry_finder.Find_fwd_until(src, itm_bgn, src_end, Byte_ascii.Nl); // look for \n
if (itm_end == Bry_finder.Not_found) itm_end = src_end; // no \n; make EOS = \n
itm_end = Bry_finder.Trim_bwd_space_tab(src, itm_end, itm_bgn); // trim any ws at end
if (itm_end - itm_bgn == 0) continue; // line is entirely ws; continue;
@@ -205,13 +205,13 @@ class Imap_parser {
pos = Bry_finder.Trim_fwd_space_tab(src, pos, src_end); // trim ws
if (pos == src_end) break;
byte b = src[pos];
- if (b == Byte_ascii.NewLine) // new-line; end
+ if (b == Byte_ascii.Nl) // new-line; end
break;
else {
Object tid_obj = tid_trie.Match_bgn_w_byte(b, src, pos, src_end);
if (tid_obj == null) { // not a known imap line; assume continuation of img line and skip to next line
imap_ctx.Wiki().Appe().Usr_dlg().Note_many("", "", "image_map extending image over multiple lines; page=~{0} imageMap=~{1}", String_.new_u8(imap_ctx.Cur_page().Ttl().Full_txt()), String_.new_u8(imap_img_src));
- int next_line = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, pos);
+ int next_line = Bry_finder.Find_fwd(src, Byte_ascii.Nl, pos);
if (next_line == Bry_finder.Not_found) next_line = src_end;
rv = next_line;
pos = rv + 1;
diff --git a/400_xowa/src/gplx/xowa/xtns/math/Xof_math_subst_regy.java b/400_xowa/src/gplx/xowa/xtns/math/Xof_math_subst_regy.java
index 4b7c3f9d6..c83bc3bfe 100644
--- a/400_xowa/src/gplx/xowa/xtns/math/Xof_math_subst_regy.java
+++ b/400_xowa/src/gplx/xowa/xtns/math/Xof_math_subst_regy.java
@@ -38,7 +38,7 @@ public class Xof_math_subst_regy {
case Byte_ascii.Curly_end:
case Byte_ascii.Brack_end:
case Byte_ascii.Underline:
- case Byte_ascii.NewLine: // NOTE: needed for \begin\n
+ case Byte_ascii.Nl: // NOTE: needed for \begin\n
break;
default:
if (itm.WholeWord()) {
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
index c1809469d..a9c33c7c0 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
@@ -161,7 +161,7 @@ public class Pfunc_expr_shunter {
Btrie_fast_mgr rv = Btrie_fast_mgr.ci_ascii_(); // NOTE:ci.ascii:MW_const.en; math and expressions
Trie_add(rv, new Ws_tkn(Byte_ascii.Space));
Trie_add(rv, new Ws_tkn(Byte_ascii.Tab));
- Trie_add(rv, new Ws_tkn(Byte_ascii.NewLine));
+ Trie_add(rv, new Ws_tkn(Byte_ascii.Nl));
Trie_add(rv, Paren_bgn_tkn._);
Trie_add(rv, Paren_end_tkn._);
Trie_add(rv, new Func_tkn_plus("+"));
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_if.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_if.java
index 3eeeb290e..d0116b07e 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_if.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_if.java
@@ -23,7 +23,7 @@ public class Pfunc_if extends Pf_func_base {
boolean val_is_empty = true; int val_len = val.length;
for (int i = 0; i < val_len; i++) {
switch (val[i]) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: break; // ws; continue
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: break; // ws; continue
default: val_is_empty = false; i = val_len; break; // non-ws; break loop
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_iferror.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_iferror.java
index 489931581..cfbbf48db 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_iferror.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ifs/Pfunc_iferror.java
@@ -57,7 +57,7 @@ public class Pfunc_iferror extends Pf_func_base {
break;
case State_nde: // <(?:strong|span|p|div)\s
switch (src[pos_nxt]) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
state = State_nde;
++pos_nxt;
break;
@@ -67,7 +67,7 @@ public class Pfunc_iferror extends Pf_func_base {
if (state == State_nde) {
valid = true;
switch (src[pos - 1]) {
- case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
break;
default:
valid = false;
@@ -83,14 +83,14 @@ public class Pfunc_iferror extends Pf_func_base {
if (state == State_class) {
valid = true;
switch (src[pos - 1]) {
- case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
break;
default:
valid = false;
break;
}
switch (src[pos_nxt]) {
- case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Quote: case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
break;
default:
valid = false;
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag.java
index f7c45f11b..a9c1e8ff8 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/strings/Pfunc_tag.java
@@ -114,7 +114,7 @@ class Pfunc_tag_kv_bldr {
else if (itm_end == -1)
itm_end = i;
break;
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:// NOTE: do not need to handle ws, b/c argBldr will trim it EX: {{#tag|a| b = c }}; " b " and " c " are automatically trimmed
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:// NOTE: do not need to handle ws, b/c argBldr will trim it EX: {{#tag|a| b = c }}; " b " and " c " are automatically trimmed
break;
default:
if (itm_bgn == -1) itm_bgn = i;
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
index 9c312bd32..7124d3f0a 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
@@ -58,7 +58,7 @@ class Pxd_parser {
while (cur_pos < src_len) {
byte b = src[cur_pos];
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
if (tkn_type != Pxd_itm_.Tid_ws) MakePrvTkn(cur_pos, Pxd_itm_.Tid_ws); break; // SEE:NOTE_1 for logic
case Byte_ascii.Dash: case Byte_ascii.Dot: case Byte_ascii.Colon: case Byte_ascii.Slash:
if (tkn_type != b) MakePrvTkn(cur_pos, b); break;
diff --git a/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java b/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
index a3fcb996b..051cced53 100644
--- a/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
+++ b/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
@@ -23,8 +23,8 @@ public class Poem_nde implements Xox_xnde {
int itm_bgn = xnde.Tag_open_end(), itm_end = xnde.Tag_close_bgn();
if (itm_bgn == src.length) return; // NOTE: handle inline where there is no content to parse; EX:
if (itm_bgn >= itm_end) return; // NOTE: handle inline where there is no content to parse; EX: ab
- if (src[itm_bgn] == Byte_ascii.NewLine) ++itm_bgn; // ignore 1st \n;
- if (src[itm_end - 1] == Byte_ascii.NewLine // ignore last \n;
+ if (src[itm_bgn] == Byte_ascii.Nl) ++itm_bgn; // ignore 1st \n;
+ if (src[itm_end - 1] == Byte_ascii.Nl // ignore last \n;
&& itm_end != itm_bgn) --itm_end; // ...if not same as 1st \n; EX: \n
Poem_xtn_mgr xtn_mgr = (Poem_xtn_mgr)wiki.Xtn_mgr().Get_or_fail(Poem_xtn_mgr.XTN_KEY);
byte[] poem_bry = Parse_lines(wiki.Utl__bfr_mkr(), src, itm_bgn, itm_end);
@@ -67,7 +67,7 @@ public class Poem_nde implements Xox_xnde {
break;
}
}
- int line_end = Bry_finder.Find_fwd(src, Byte_ascii.NewLine, line_bgn, src_end); // find end "\n"
+ int line_end = Bry_finder.Find_fwd(src, Byte_ascii.Nl, line_bgn, src_end); // find end "\n"
if (line_end == Bry_finder.Not_found) line_end = src_end; // no "\n"; use eos;
bfr.Add_mid(src, line_bgn, line_end); // add everything from line_bgn to line_end
if (indent_enabled) bfr.Add(Html_tag_.Span_rhs); // if "\n:", add
diff --git a/400_xowa/src/gplx/xowa/xtns/scores/Score_xnde.java b/400_xowa/src/gplx/xowa/xtns/scores/Score_xnde.java
index e619fdbdf..dbc0c1ae6 100644
--- a/400_xowa/src/gplx/xowa/xtns/scores/Score_xnde.java
+++ b/400_xowa/src/gplx/xowa/xtns/scores/Score_xnde.java
@@ -181,8 +181,8 @@ public class Score_xnde implements Xox_xnde, Xop_xnde_atr_parser, Xoh_cmd_itm {
byte[] rslt = Bry_.new_u8(rslt_str); // expect 1st line to be of form "GNU LilyPond 2.16.2"
int bgn_pos = Bry_finder.Find_fwd(rslt, Version_find_bgn); if (bgn_pos == Bry_.NotFound) return Version_unknown;
bgn_pos += Version_find_bgn.length + 1; // +1 for trailing space
- int end_pos = Bry_finder.Find_fwd(rslt, Byte_ascii.NewLine, bgn_pos); if (bgn_pos == Bry_.NotFound) return Version_unknown;
- if (rslt[end_pos - 1] == Byte_ascii.CarriageReturn) end_pos = end_pos - 1;
+ int end_pos = Bry_finder.Find_fwd(rslt, Byte_ascii.Nl, bgn_pos); if (bgn_pos == Bry_.NotFound) return Version_unknown;
+ if (rslt[end_pos - 1] == Byte_ascii.Cr) end_pos = end_pos - 1;
return Bry_.Mid(rslt, bgn_pos, end_pos);
}
public static final byte Xatr_id_lang_is_abc = 0, Xatr_id_code_is_raw = 1, Xatr_id_output_midi = 2, Xatr_id_output_ogg = 3, Xatr_id_file_midi = 4, Xatr_id_file_ogg = 5;
@@ -196,7 +196,7 @@ public class Score_xnde implements Xox_xnde, Xop_xnde_atr_parser, Xoh_cmd_itm {
;
private static final byte[]
Lang_abc = Bry_.new_a7("ABC")
- , Abc_tagline_bgn = Bry_.new_a7("tagline ="), Abc_tagline_end = new byte[] {Byte_ascii.NewLine}, Abc_tagline_repl = Bry_.new_a7("tagline = \"\"\n")
+ , Abc_tagline_bgn = Bry_.new_a7("tagline ="), Abc_tagline_end = new byte[] {Byte_ascii.Nl}, Abc_tagline_repl = Bry_.new_a7("tagline = \"\"\n")
, Version_unknown = Bry_.new_a7("unknown"), Version_find_bgn = Bry_.new_a7("GNU LilyPond")
;
static final String GRP_KEY = "xowa.xtns.scores.itm";
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_send_wtr.java b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_send_wtr.java
index 79a8248ba..508a57267 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_send_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_send_wtr.java
@@ -38,8 +38,8 @@ public class Process_send_wtr {
byte b = bry[i];
switch (b) {
case Byte_ascii.Quote: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(b); break;
- case Byte_ascii.NewLine: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break;
- case Byte_ascii.CarriageReturn: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_r); break;
+ case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break;
+ case Byte_ascii.Cr: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_r); break;
case Byte_ascii.Nil: bfr.Add(CONST_escape_000); break;
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Backslash); break;
default: bfr.Add_byte(b); break;
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr.java b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr.java
index ce8496fdc..7e042cf3a 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr.java
@@ -43,8 +43,8 @@ public class Process_stream_rdr {
byte b = trg_bry[trg_idx];
if (escaped) { // escaped mode; convert cur byte to appropriate byte
switch (b) {
- case Byte_ascii.Ltr_n: b = Byte_ascii.NewLine; break;
- case Byte_ascii.Ltr_r: b = Byte_ascii.CarriageReturn; break;
+ case Byte_ascii.Ltr_n: b = Byte_ascii.Nl; break;
+ case Byte_ascii.Ltr_r: b = Byte_ascii.Cr; break;
case Byte_ascii.Backslash: b = Byte_ascii.Backslash; break;
default: throw Err_.unhandled(b);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr_tst.java
index cd57d7620..19047358c 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/process/Process_stream_rdr_tst.java
@@ -55,8 +55,8 @@ class Process_stream_rdr_fxt {
b = src_bry[i];
switch (b) {
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); break;
- case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.NewLine); break;
- case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.CarriageReturn); break;
+ case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.Nl); break;
+ case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.Cr); break;
default: throw Err_.unhandled(b);
}
break;
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java
index 9ac41efa0..aa7198f6c 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java
@@ -99,7 +99,7 @@ class Scrib_lib_text_ {
bfr.Add_byte(Byte_ascii.Brack_bgn).Add_byte(Byte_ascii.Case_upper(b)).Add_byte(b).Add_byte(Byte_ascii.Brack_end); // [Aa]
break;
case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Pow: case Byte_ascii.Dollar: case Byte_ascii.Percent: case Byte_ascii.Dot:
- case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end: case Byte_ascii.Asterisk: case Byte_ascii.Plus: case Byte_ascii.Question: case Byte_ascii.Dash:
+ case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end: case Byte_ascii.Star: case Byte_ascii.Plus: case Byte_ascii.Question: case Byte_ascii.Dash:
bfr.Add_byte(Byte_ascii.Percent).Add_byte(b); // regex is '/([a-zA-Z])|([()^$%.\[\]*+?-])/'
break;
default: // ignore
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
index 4d41df4eb..db7c95b1b 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
@@ -170,7 +170,7 @@ public class Scrib_regx_converter {
if (q_flag && i + 1 < len) {
byte tmp_b = src[i + 1];
switch (tmp_b) {
- case Byte_ascii.Asterisk:
+ case Byte_ascii.Star:
case Byte_ascii.Plus:
case Byte_ascii.Question:
bfr.Add_byte(tmp_b);
@@ -202,7 +202,7 @@ public class Scrib_regx_converter {
}
private boolean Regx_char(byte b) {
switch (b) {
- case Byte_ascii.Dot: case Byte_ascii.Slash: case Byte_ascii.Plus: case Byte_ascii.Asterisk: case Byte_ascii.Question:
+ case Byte_ascii.Dot: case Byte_ascii.Slash: case Byte_ascii.Plus: case Byte_ascii.Star: case Byte_ascii.Question:
case Byte_ascii.Pow: case Byte_ascii.Dollar: case Byte_ascii.Eq: case Byte_ascii.Bang: case Byte_ascii.Pipe:
case Byte_ascii.Colon: case Byte_ascii.Dash:
case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Curly_bgn: case Byte_ascii.Curly_end:
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_site_ns_cmd.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_site_ns_cmd.java
index 35eb713ce..76f50d9f1 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_site_ns_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_site_ns_cmd.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import gplx.dbs.*; import gplx.xowa.bldrs.*;
+import gplx.xowa.wmfs.*; import gplx.xowa.wmfs.data.*;
public class Xob_site_ns_cmd implements Xob_cmd {
private final Xob_bldr bldr;
public Xob_site_ns_cmd(Xob_bldr bldr, Xow_wiki wiki) {this.bldr = bldr;}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java
index 90954e499..d0ea029a4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java
@@ -72,11 +72,11 @@ class Xob_wbase_json_dump_parser {
if (pos < bry_len)
b = bry[pos];
else {
- b = Byte_ascii.NewLine;
+ b = Byte_ascii.Nl;
pos = bry_len;
exit = true;
}
- if (b == Byte_ascii.NewLine) {
+ if (b == Byte_ascii.Nl) {
byte[] json_bry = Bry_.Mid(bry, page_bgn, pos);
if (json_bry.length == 1 && json_bry[0] == Byte_ascii.Brack_end) return -1;
if (exit) return -1;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java
index 5ee8d09b8..b5ceb236d 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java
@@ -18,6 +18,7 @@ along with this program. If not, see .
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import gplx.dbs.*;
import gplx.xowa.wikis.*;
+import gplx.xowa.wmfs.data.*;
class Xob_wbase_ns_parser {
private final Hash_adp_bry ns_mgr_hash = Hash_adp_bry.cs_();
private final Xowmf_site_tbl tbl_site; private final Xowmf_ns_tbl tbl_itm;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
index 2a256edd7..b16f1c6f0 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import gplx.json.*; import gplx.ios.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.wikis.data.tbls.*;
+import gplx.xowa.wmfs.data.*;
public abstract class Xob_wdata_qid_base extends Xob_itm_dump_base implements Xobd_wkr, GfoInvkAble {
private Json_parser parser; private Xob_wbase_ns_parser ns_parser; private final Xob_wbase_ns_parser_rslt ns_parser_rslt = new Xob_wbase_ns_parser_rslt();
public Xob_wdata_qid_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
index 8006318bf..9d8ffd12a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
@@ -18,6 +18,7 @@ along with this program. If not, see .
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*;
import gplx.xowa.wikis.*; import gplx.xowa.tdbs.*; import gplx.dbs.*;
+import gplx.xowa.wmfs.data.*;
public class Xob_wdata_qid_base_tst {
private gplx.xowa.bldrs.Xob_fxt fxt; // NOTE: reset memory instance (don't just call clear)
@Before public void init() {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java
index b1f6c143b..3a227ef25 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java
@@ -49,5 +49,5 @@ public class Wdata_external_lang_links_data {
}
tmp_bfr.Mkr_rls();
}
- public static final byte[] Key_sort = new byte[] {Byte_ascii.Asterisk};
+ public static final byte[] Key_sort = new byte[] {Byte_ascii.Star};
}
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
index 8c0759c75..7c87a3b0e 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
@@ -23,8 +23,8 @@ public class Xop_xowa_cmd implements Xox_xnde {
public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
int itm_bgn = xnde.Tag_open_end(), itm_end = xnde.Tag_close_bgn();
if (itm_bgn == src.length) return; // NOTE: handle inline where there is no content to parse; EX:
- if (src[itm_bgn] == Byte_ascii.NewLine) ++itm_bgn; // ignore 1st \n;
- if (src[itm_end - 1] == Byte_ascii.NewLine) --itm_end; // ignore last \n;
+ if (src[itm_bgn] == Byte_ascii.Nl) ++itm_bgn; // ignore 1st \n;
+ if (src[itm_end - 1] == Byte_ascii.Nl) --itm_end; // ignore last \n;
byte[] raw = Bry_.Mid(src, itm_bgn, itm_end);
byte[] xtn_src = raw;
if (wiki.Sys_cfg().Xowa_cmd_enabled()) { // only exec if enabled for wiki
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
index de67c518a..f0ef6cec8 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
@@ -36,8 +36,8 @@ public class Xox_xowa_html_cmd implements Xox_xnde, Xop_xnde_atr_parser {
}
Xop_xatr_itm.Xatr_parse(wiki.Appe(), this, atr_hash, wiki, src, xnde);
int itm_bgn = xnde.Tag_open_end(), itm_end = xnde.Tag_close_bgn();
- if (src[itm_bgn] == Byte_ascii.NewLine) ++itm_bgn; // ignore 1st \n;
- // if (src[itm_end - 1] == Byte_ascii.NewLine) --itm_end; // ignore last \n;
+ if (src[itm_bgn] == Byte_ascii.Nl) ++itm_bgn; // ignore 1st \n;
+ // if (src[itm_end - 1] == Byte_ascii.Nl) --itm_end; // ignore last \n;
byte[] raw = Bry_.Mid(src, itm_bgn, itm_end);
if (pos_val == Pos_head_end)
ctx.Cur_page().Html_data().Custom_head_end_concat(raw);
diff --git a/400_xowa/src/gplx/xowa2/apps/Xoav_wiki_mgr.java b/400_xowa/src/gplx/xowa2/apps/Xoav_wiki_mgr.java
index a20845425..28228767f 100644
--- a/400_xowa/src/gplx/xowa2/apps/Xoav_wiki_mgr.java
+++ b/400_xowa/src/gplx/xowa2/apps/Xoav_wiki_mgr.java
@@ -39,12 +39,12 @@ public class Xoav_wiki_mgr implements Xoa_wiki_mgr, GfoInvkAble {
public Xowv_wiki Load_by_fil(Io_url fil) {
return Load(Gen_domain_str(fil.NameOnly()), fil.OwnerDir());
}
- public Xow_wiki Get_by_key_or_make_2(byte[] key) {
+ public Xow_wiki Get_by_key_or_make_init_y(byte[] key) {
Xow_wiki rv = this.Get_by_domain(key);
- // if (rv == null) rv = New_wiki(key); // TODO: must make wiki, but need wiki_url; DATE:2015-05-23
+ // if (rv == null) rv = New_wiki(key); // TODO: must init wiki, but need wiki_url; DATE:2015-05-23
return rv;
}
- public Xow_wiki Get_by_key_or_make_3(byte[] key) {return Get_by_key_or_make_2(key);}
+ public Xow_wiki Get_by_key_or_make_init_n(byte[] key) {return Get_by_key_or_make_init_y(key);}
public void Load_by_dir(Io_url wiki_root_dir) {
Io_url[] wiki_dirs = Io_mgr.I.QueryDir_args(wiki_root_dir).DirOnly_().ExecAsUrlAry();
for (Io_url wiki_dir : wiki_dirs) {
diff --git a/400_xowa/src_040_io/gplx/ios/Io_line_rdr.java b/400_xowa/src_040_io/gplx/ios/Io_line_rdr.java
index d911a093c..621a6c4b4 100644
--- a/400_xowa/src_040_io/gplx/ios/Io_line_rdr.java
+++ b/400_xowa/src_040_io/gplx/ios/Io_line_rdr.java
@@ -25,7 +25,7 @@ public class Io_line_rdr {
urls[0] = url;
url_idx = 0;
}
- public byte Line_dlm() {return line_dlm;} public Io_line_rdr Line_dlm_(byte v) {line_dlm = v; return this;} private byte line_dlm = Byte_ascii.NewLine;
+ public byte Line_dlm() {return line_dlm;} public Io_line_rdr Line_dlm_(byte v) {line_dlm = v; return this;} private byte line_dlm = Byte_ascii.Nl;
public byte[] Bfr() {return bfr;} private byte[] bfr;
public int Bfr_len() {return bfr_len;} private int bfr_len;
public byte Bfr_state() {return bfr_state;} private byte bfr_state = Bfr_state_bgn; static final byte Bfr_state_bgn = 0, Bfr_state_mid = 1, Bfr_state_end = 2;
@@ -139,7 +139,7 @@ public class Io_line_rdr {
if (file_skip_line0) {
byte[] stream_bry = Io_mgr.I.LoadFilBry(url);
int stream_bry_len = stream_bry.length;
- int nl_pos = Bry_finder.Find_fwd(stream_bry, Byte_ascii.NewLine, 0, stream_bry_len);
+ int nl_pos = Bry_finder.Find_fwd(stream_bry, Byte_ascii.Nl, 0, stream_bry_len);
if (nl_pos == Bry_.NotFound)
stream_bry = Bry_.Empty;
else
diff --git a/400_xowa/src_060_utl/gplx/Url_encoder.java b/400_xowa/src_060_utl/gplx/Url_encoder.java
index e34eefc9f..cbe71b098 100644
--- a/400_xowa/src_060_utl/gplx/Url_encoder.java
+++ b/400_xowa/src_060_utl/gplx/Url_encoder.java
@@ -208,7 +208,7 @@ public class Url_encoder implements Url_encoder_interface {
rv.Itms_ini(Byte_ascii.Percent);
mediawiki_base(rv, true);
rv.Itms_raw_diff(Byte_ascii.Space, Byte_ascii.Underline);
- rv.Itms_raw_same_many(Byte_ascii.Semic, Byte_ascii.At, Byte_ascii.Dollar, Byte_ascii.Bang, Byte_ascii.Asterisk
+ rv.Itms_raw_same_many(Byte_ascii.Semic, Byte_ascii.At, Byte_ascii.Dollar, Byte_ascii.Bang, Byte_ascii.Star
, Byte_ascii.Paren_bgn, Byte_ascii.Paren_end, Byte_ascii.Comma, Byte_ascii.Slash, Byte_ascii.Colon
, Byte_ascii.Hash// NOTE: not part of wfUrlEncode; not sure where this is specified; needed for A#b
);
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
index 62e07b3b1..6e223ec73 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
@@ -35,7 +35,7 @@ along with this program. If not, see .
// Xol_csv_parser csv_parser = Xol_csv_parser._;
// while (true) {
// boolean last = pos == len;
-// byte b = last ? Byte_ascii.NewLine : src[pos];
+// byte b = last ? Byte_ascii.Nl : src[pos];
// switch (b) {
// case Byte_ascii.Pipe:
// switch (fld_idx) {
@@ -45,7 +45,7 @@ along with this program. If not, see .
// fld_bgn = pos + 1;
// ++fld_idx;
// break;
-// case Byte_ascii.NewLine:
+// case Byte_ascii.Nl:
// if (fld_bgn < pos) { // guard against trailing new lines
// wiki = csv_parser.Load(src, fld_bgn, pos);
// hash.Add_bry_obj(alias, wiki);
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoad_wtr_dump.java b/400_xowa/src_100_app/gplx/xowa/Xoad_wtr_dump.java
index 275d54f59..9a7f700df 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoad_wtr_dump.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoad_wtr_dump.java
@@ -93,7 +93,7 @@ class Xoad_dump_itm {
for (int i = bgn; i < end; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.NewLine: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_n); break;
+ case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_n); break;
case Byte_ascii.Tab: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_t); break;
default: bfr.Add_byte(b); break;
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
index 262a9700b..54cf8b7cf 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
@@ -248,7 +248,7 @@ public class Xow_ns_mgr implements GfoInvkAble, gplx.lists.ComparerAble {
} private static final String Invk_add_alias_bulk = "add_alias_bulk", Invk_get_by_id_or_new = "get_by_id_or_new";
public static final String Invk_load = "load", Invk_clear = "clear";
private void Exec_add_alias_bulk(byte[] raw) {
- byte[][] lines = Bry_.Split(raw, Byte_ascii.NewLine);
+ byte[][] lines = Bry_.Split(raw, Byte_ascii.Nl);
int lines_len = lines.length;
for (int i = 0; i < lines_len; i++) {
byte[] line = lines[i];
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java b/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java
index d1cd14e9b..c2bbe9e71 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java
@@ -265,7 +265,6 @@ public class Xowe_wiki implements Xow_wiki, GfoInvkAble {
private void Html__hdump_enabled_(boolean v) {
this.html_mgr__hdump_enabled = v;
if (html_mgr__hdump_enabled) {
- // if (db_mgr.Tid() == Xodb_mgr_txt.Tid_txt) this.Db_mgr_create_as_sql();
Xowd_html_tbl.Assert_col__page_html_db_id(Db_mgr_as_sql().Core_data_mgr()); // NOTE: must go above html_mgr.Init_by_wiki b/c Page_load will be done via messages
html_mgr__hdump_rdr.Init_by_db(this.Data__core_mgr());
html_mgr__hdump_wtr.Init_by_db(this.Data__core_mgr());
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr_tst.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr_tst.java
index 69a23674e..6bd349f31 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr_tst.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr_tst.java
@@ -34,7 +34,7 @@ class Xob_reg_wtr {
.Add_int_variable(fil_count++).Add_byte(Byte_ascii.Pipe)
.Add(bgn).Add_byte(Byte_ascii.Pipe)
.Add(end).Add_byte(Byte_ascii.Pipe)
- .Add_int_variable(itm_count).Add_byte(Byte_ascii.NewLine);
+ .Add_int_variable(itm_count).Add_byte(Byte_ascii.Nl);
}
public void Flush(Io_url url) {
Io_mgr.I.SaveFilBfr(url, bfr);
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java b/400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java
index fbf1f1525..2dac5d10d 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java
@@ -22,8 +22,8 @@ public class Xol_csv_parser {
for (int i = 0; i < len; i++) {
byte b = src[i];
switch (b) {
- case Byte_ascii.CarriageReturn: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_r); break;
- case Byte_ascii.NewLine: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_n); break;
+ case Byte_ascii.Cr: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_r); break;
+ case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_n); break;
case Byte_ascii.Tab: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_t); break;
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Backslash); break;
case Byte_ascii.Pipe: bfr.Add(Bry_pipe); break;
@@ -42,8 +42,8 @@ public class Xol_csv_parser {
byte nxt_byte = src[nxt_pos];
switch (nxt_byte) {
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); break;
- case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.CarriageReturn); break;
- case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.NewLine); break;
+ case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.Cr); break;
+ case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.Nl); break;
case Byte_ascii.Ltr_t: bfr.Add_byte(Byte_ascii.Tab); break;
case Byte_ascii.Ltr_u:
int utf_len = 1;
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
index cd36ca49d..8bcc96871 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
@@ -38,7 +38,7 @@ public class Xol_lang_ {
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
return Char_tid_num;
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: case Byte_ascii.Cr:
return Char_tid_ws;
default:
return Char_tid_misc;
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java
index 233082d42..a9cc4ab1e 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java
@@ -24,14 +24,14 @@ public class Xol_lang_srl {
List_adp rv = List_adp_.new_(); Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
cur_id = Bry_.Xto_int_or(src, fld_bgn, pos, Int_.MinValue);
if (cur_id == Int_.MinValue) throw Err_mgr._.fmt_(GRP_KEY, "invalid_id", "invalid_id: ~{0}", String_.new_u8(src, fld_bgn, pos));
fld_bgn = pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
byte[] cur_name = csv_parser.Load(src, fld_bgn, pos);
Xow_ns ns = new Xow_ns(cur_id, Xow_ns_case_.Id_1st, cur_name, false);
rv.Add(ns);
@@ -53,7 +53,7 @@ public class Xol_lang_srl {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -77,7 +77,7 @@ public class Xol_lang_srl {
cur_words.Add(word);
fld_bgn = pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (cur_words.Count() > 0) { // guard against blank line wiping out entries; EX: "toc|0|toc1\n\n"; 2nd \n will get last grp and make 0 entries
int cur_id = Xol_kwd_grp_.Id_by_bry(cur_key); if (cur_id == -1) throw Err_mgr._.fmt_(GRP_KEY, "invalid_keyword", "key does not have id: ~{0}", cur_id);
Xol_kwd_grp grp = keyword_mgr.Get_or_new(cur_id);
@@ -101,13 +101,13 @@ public class Xol_lang_srl {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
cur_key = csv_parser.Load(src, fld_bgn, pos);
fld_bgn = pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
byte[] cur_val = csv_parser.Load(src, fld_bgn, pos);
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_new(cur_key).Src_(Xol_msg_itm.Src_lang); // NOTE: this proc should only be called when loading lang.gfs
Xol_msg_itm_.update_val_(itm, cur_val);
@@ -127,13 +127,13 @@ public class Xol_lang_srl {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
cur_key = csv_parser.Load(src, fld_bgn, pos);
fld_bgn = pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
byte[] cur_val_raw = csv_parser.Load(src, fld_bgn, pos);
byte[][] cur_vals = Bry_.Split(cur_val_raw, Byte_ascii.Tilde);
special_mgr.Add(cur_key, cur_vals);
diff --git a/400_xowa/src_160_file/gplx/xowa/Xofo_lnki_parser.java b/400_xowa/src_160_file/gplx/xowa/Xofo_lnki_parser.java
index ff53cc85e..40dba3f83 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xofo_lnki_parser.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xofo_lnki_parser.java
@@ -20,7 +20,7 @@ import gplx.xowa.files.*;
class Xofo_lnki_parser extends Obj_ary_parser_base {
Number_parser parser = new Number_parser(); Xofo_lnki[] ary; int ary_idx;
public Xofo_lnki[] Parse_ary(byte[] bry, int bgn, int end) {
- Parse_core(bry, bgn, end, Byte_ascii.Semic, Byte_ascii.NewLine);
+ Parse_core(bry, bgn, end, Byte_ascii.Semic, Byte_ascii.Nl);
return ary;
}
@Override protected void Ary_len_(int v) {
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java b/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java
index eae795c8f..6419f3e18 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java
@@ -50,7 +50,7 @@ public class Io_sort_cmd_ns implements Io_make_cmd {
.Add_int_variable(fil_count++).Add_byte(Byte_ascii.Pipe)
.Add_bfr_and_preserve(key_bfr_0).Add_byte(Byte_ascii.Pipe)
.Add_bfr_and_preserve(key_bfr_n).Add_byte(Byte_ascii.Pipe)
- .Add_int_variable(itm_count).Add_byte(Byte_ascii.NewLine);
+ .Add_int_variable(itm_count).Add_byte(Byte_ascii.Nl);
itm_count = 0;
key_bfr_0.Clear();
if (fil_wtr.Fil_idx() % 10 == 0)
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java
index a57d7c814..59e1c6786 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java
@@ -125,7 +125,7 @@ public class Xob_make_cmd_site implements Io_make_cmd {
.Add_int_variable(fil_count++).Add_byte(Byte_ascii.Pipe)
.Add_bfr_and_preserve(reg_key_0).Add_byte(Byte_ascii.Pipe)
.Add_bfr_and_preserve(reg_key_n).Add_byte(Byte_ascii.Pipe)
- .Add_int_variable(itm_count).Add_byte(Byte_ascii.NewLine);
+ .Add_int_variable(itm_count).Add_byte(Byte_ascii.Nl);
itm_count = 0;
reg_key_0.Clear();
}
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java
index 70b9c8b91..c18c6184e 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java
@@ -28,7 +28,7 @@ public class Xob_stat_type {
Xob_stat_itm itm = (Xob_stat_itm)regy.Get_at(i);
sb.Add(Xotdb_dir_info_.Tid_name(tid)).Add(Xob_stat_itm.Dlm);
itm.XtoStr(sb);
- sb.Add(Byte_ascii.NewLine);
+ sb.Add(Byte_ascii.Nl);
}
}
Ordered_hash regy = Ordered_hash_.new_();
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file.java
index 3f0802009..550c029fb 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file.java
@@ -98,7 +98,7 @@ public class Xob_xdat_file {
if (insert) bfr.Add(new_itm);
itm_0_bgn = (ary_len * Len_idx_itm) + Len_itm_dlm;
src = bfr.Xto_bry_and_clear();
- } static final byte Dlm_hdr_fld = Byte_ascii.Pipe, Dlm_row = Byte_ascii.NewLine;
+ } static final byte Dlm_hdr_fld = Byte_ascii.Pipe, Dlm_row = Byte_ascii.Nl;
public void Save(Io_url url) {
Bry_bfr bfr = Bry_bfr.new_();
Srl_save_bry(bfr);
@@ -153,7 +153,7 @@ public class Xob_xdat_file {
while (true) {
slot_bgn = itm_count * Len_idx_itm;
if (slot_bgn >= src_len) break;
- if (src[slot_bgn] == Byte_ascii.NewLine) break;
+ if (src[slot_bgn] == Byte_ascii.Nl) break;
int tmp_val = Base85_utl.XtoIntByAry(src, slot_bgn, slot_bgn + Offset_base85);
slot_new = slot_old + tmp_val;
int new_idx = itm_count + 1;
@@ -186,7 +186,7 @@ public class Xob_xdat_file {
int row_len = row.length + dlm_len;
bfr.Add_base85_len_5(row_len).Add_byte(Byte_ascii.Pipe);
}
- bfr.Add_byte(Byte_ascii.NewLine);
+ bfr.Add_byte(Byte_ascii.Nl);
for (int i = 1; i < rows_len; i++) { // i=1; skip 1st row (which is empty header)
byte[] row = rows[i];
bfr.Add(row);
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_tst.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_tst.java
index e501da5f0..3894de3d5 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_tst.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_tst.java
@@ -99,7 +99,7 @@ public class Xob_xdat_file_tst {
Tfds.Eq_str_lines(expd, actl);
}
private void tst_Find(Xob_xdat_file rdr, String find, int expd, boolean exact) {
- rdr.Find(itm, Bry_.new_u8(find), 2, Byte_ascii.NewLine, exact);
+ rdr.Find(itm, Bry_.new_u8(find), 2, Byte_ascii.Nl, exact);
int id = Bry_.Xto_int_or(Bry_.Mid(itm.Itm_bry(), 0, 1), -1);
Tfds.Eq(expd, id);
}
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
index 84f708d5f..68277eb3c 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
@@ -73,7 +73,7 @@ public class Xob_xdat_file_wtr {
idx_bry[idx_bry_pos + Len_base85] = Dlm_fld;
prv_pos = cur_pos;
}
- idx_bry[idx_bry_len - 1] = Byte_ascii.NewLine;
+ idx_bry[idx_bry_len - 1] = Byte_ascii.Nl;
wtr.Write(idx_bry, 0, idx_bry_len);
}
// public void Flush(Gfo_usr_dlg usr_dlg) {
@@ -102,7 +102,7 @@ public class Xob_xdat_file_wtr {
// idx_bry[idx_bry_pos + Len_base85] = Dlm_idx;
// prv_pos = cur_pos;
// }
-// idx_bry[idx_bry_len - 1] = Byte_ascii.NewLine;
+// idx_bry[idx_bry_len - 1] = Byte_ascii.Nl;
// stream.Write(idx_bry, 0, idx_bry_len);
// }
static final int Len_idx_itm = 6, Len_base85 = 5;
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr_tst.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr_tst.java
index b42f8a175..cf4f4b1e4 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr_tst.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr_tst.java
@@ -42,7 +42,7 @@ public class Xob_xdat_file_wtr_tst {
Tfds.Eq(expd, String_.new_u8(wtr.Bfr().Bfr(), 0, wtr.Bfr().Len()));
}
private void tst_Add_idx(Xob_xdat_file_wtr wtr, int expd) {
- wtr.Add_idx(Byte_ascii.NewLine);
+ wtr.Add_idx(Byte_ascii.Nl);
Tfds.Eq(expd, wtr.Idx()[wtr.Idx_pos() - 1]);
}
private void tst_Flush(Xob_xdat_file_wtr wtr, String expd) {
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java b/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
index cd71949a3..56158f61e 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
@@ -31,7 +31,7 @@ class Io_sort_filCmd_reg implements Io_sort_filCmd { // 123|bgn|end|1
}
public void Fil_end() {
bfr.Add_mid(prv_key, 0, prv_key_len).Add_byte(Byte_ascii.Pipe)
- .Add_int_variable(itm_count).Add_byte(Byte_ascii.NewLine);
+ .Add_int_variable(itm_count).Add_byte(Byte_ascii.Nl);
itm_count = 0;
}
public void Flush(Io_url fil) {
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Cfg_nde_root.java b/400_xowa/src_210_bldr_core/gplx/xowa/Cfg_nde_root.java
index 2cf2eaebc..3384badb4 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Cfg_nde_root.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Cfg_nde_root.java
@@ -61,7 +61,7 @@ public class Cfg_nde_root implements GfoInvkAble {
List_adp cmds = List_adp_.new_();
while (true) {
boolean last = src_pos == src_len;
- byte b = last ? Byte_ascii.NewLine : src[src_pos];
+ byte b = last ? Byte_ascii.Nl : src[src_pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -84,7 +84,7 @@ public class Cfg_nde_root implements GfoInvkAble {
++fld_idx;
fld_bgn = src_pos + 1;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (!(fld_idx == 0 && fld_bgn == src_pos)) {
Cfg_nde_cmd cmd = null;
switch (cur_cmd) {
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Gfs_bldr.java b/400_xowa/src_210_bldr_core/gplx/xowa/Gfs_bldr.java
index 90960bab0..49dd1535f 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Gfs_bldr.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Gfs_bldr.java
@@ -58,8 +58,8 @@ public class Gfs_bldr {
public Gfs_bldr Add_paren_end() {bfr.Add_byte(Byte_ascii.Paren_end); return this;}
public Gfs_bldr Add_quote_xtn_bgn() {bfr.Add(Bry_xquote_bgn); return this;}
public Gfs_bldr Add_quote_xtn_end() {bfr.Add(Bry_xquote_end); return this;}
- public Gfs_bldr Add_quote_xtn_apos_bgn() {bfr.Add_byte(Byte_ascii.Paren_bgn).Add_byte(Byte_ascii.Apos).Add_byte(Byte_ascii.NewLine); return this;}
- public Gfs_bldr Add_quote_xtn_apos_end() {bfr.Add_byte(Byte_ascii.Apos).Add_byte(Byte_ascii.Paren_end).Add_byte(Byte_ascii.Semic).Add_byte(Byte_ascii.NewLine); return this;}
+ public Gfs_bldr Add_quote_xtn_apos_bgn() {bfr.Add_byte(Byte_ascii.Paren_bgn).Add_byte(Byte_ascii.Apos).Add_byte(Byte_ascii.Nl); return this;}
+ public Gfs_bldr Add_quote_xtn_apos_end() {bfr.Add_byte(Byte_ascii.Apos).Add_byte(Byte_ascii.Paren_end).Add_byte(Byte_ascii.Semic).Add_byte(Byte_ascii.Nl); return this;}
public Gfs_bldr Add_quote_0() {bfr.Add_byte(Byte_ascii.Apos); return this;}
public Gfs_bldr Add_term_nl() {bfr.Add(Bry_semic_nl); return this;}
public Gfs_bldr Add_eq_str(String k, byte[] v) {
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Sql_file_parser.java b/400_xowa/src_210_bldr_core/gplx/xowa/Sql_file_parser.java
index 199f11ada..b7c8b59e8 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Sql_file_parser.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Sql_file_parser.java
@@ -88,7 +88,7 @@ public class Sql_file_parser {
break;
case Mode_row_end:
switch (b) {
- case Byte_ascii.NewLine: break; // ignore \n
+ case Byte_ascii.Nl: break; // ignore \n
case Byte_ascii.Comma: mode = Mode_row_bgn; break;
case Byte_ascii.Semic: mode = Mode_sql_bgn; break;
default: throw Err_.unhandled(mode);
@@ -100,7 +100,7 @@ public class Sql_file_parser {
case Byte_ascii.Apos: mode = Mode_quote; break; // NOTE: never escape apos by doubling; will fail for empty fields; EX: ", '', ''"; DATE:2013-07-06
case Byte_ascii.Backslash: mode_prv = mode; mode = Mode_escape; break;
default: val_bfr.Add_byte(b); break;
- case Byte_ascii.Space: case Byte_ascii.NewLine: break;
+ case Byte_ascii.Space: case Byte_ascii.Nl: break;
case Byte_ascii.Comma:
Commit_fld(fld_idx++, val_bfr, fil_bfr, data);
break;
@@ -137,7 +137,7 @@ public class Sql_file_parser {
finally {rdr.Rls();}
}
private void Commit_row(Gfo_usr_dlg usr_dlg, Bry_bfr fil_bfr) {
- fil_bfr.Add_byte(Byte_ascii.NewLine);
+ fil_bfr.Add_byte(Byte_ascii.Nl);
if (fil_bfr.Len() > trg_len) {
Io_url trg_fil = trg_fil_gen.Nxt_url();
usr_dlg.Prog_one(GRP_KEY, "make", "making ~{0}", trg_fil.NameAndExt());
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Sql_fld_mgr.java b/400_xowa/src_210_bldr_core/gplx/xowa/Sql_fld_mgr.java
index de3f2fca2..c5e1381e2 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Sql_fld_mgr.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Sql_fld_mgr.java
@@ -26,15 +26,15 @@ class Sql_fld_mgr {
public Sql_fld_mgr Parse(byte[] raw) {
hash.Clear();
int bgn = Bry_finder.Find_fwd(raw, Tkn_create_table); if (bgn == Bry_.NotFound) throw Err_.new_("could not find 'CREATE TABLE'");
- bgn = Bry_finder.Find_fwd(raw, Byte_ascii.NewLine, bgn); if (bgn == Bry_.NotFound) throw Err_.new_("could not find new line after 'CREATE TABLE'");
+ bgn = Bry_finder.Find_fwd(raw, Byte_ascii.Nl, bgn); if (bgn == Bry_.NotFound) throw Err_.new_("could not find new line after 'CREATE TABLE'");
bgn += Int_.Const_position_after_char;
int end = Bry_finder.Find_fwd(raw, Tkn_unique_index); if (end == Bry_.NotFound) throw Err_.new_("could not find 'UNIQUE KEY'");
- end = Bry_finder.Find_bwd(raw, Byte_ascii.NewLine, end); if (bgn == Bry_.NotFound) throw Err_.new_("could not find new line before 'UNIQUE KEY'");
+ end = Bry_finder.Find_bwd(raw, Byte_ascii.Nl, end); if (bgn == Bry_.NotFound) throw Err_.new_("could not find new line before 'UNIQUE KEY'");
Parse_lines(Bry_.Mid(raw, bgn, end));
return this;
}
private void Parse_lines(byte[] raw) {
- byte[][] lines = Bry_.Split(raw, Byte_ascii.NewLine);
+ byte[][] lines = Bry_.Split(raw, Byte_ascii.Nl);
int lines_len = lines.length;
int fld_idx = 0;
for (int i = 0; i < lines_len; i++) {
diff --git a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
index a1ac1b1ac..1dba4bfc2 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
@@ -54,7 +54,7 @@ public class Xow_cfg_wiki_core {
Xol_csv_parser csv_parser = Xol_csv_parser._;
while (true) {
boolean last = pos == len;
- byte b = last ? Byte_ascii.NewLine : src[pos];
+ byte b = last ? Byte_ascii.Nl : src[pos];
switch (b) {
case Byte_ascii.Pipe:
switch (fld_idx) {
@@ -65,7 +65,7 @@ public class Xow_cfg_wiki_core {
fld_bgn = pos + 1;
++fld_idx;
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
if (pos > row_bgn) { // guard against blank lines
cur_name = csv_parser.Load(src, fld_bgn, pos);
ns_mgr.Add_new(cur_id, cur_name, cur_case_match, false);
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
index c2bd0a5e5..60fe67c03 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
@@ -155,11 +155,11 @@ public class Xoa_url_parser {
if ( xwiki_itm != null // null-check
&& Bry_.Eq(xwiki_itm.Domain_bry(), wiki_bry)// check that xwiki.domain == wiki; avoids false lang matches like "so/page" or "C/page"; EX: "fr.wikipedia.org" vs "fr"; ca.s:So/Natura_del_so; DATE:2014-04-26; PAGE:no.b:C/Variabler; DATE:2014-10-14
)
- wiki = app.Wiki_mgri().Get_by_key_or_make_3(xwiki_itm.Domain_bry());
+ wiki = app.Wiki_mgri().Get_by_key_or_make_init_n(xwiki_itm.Domain_bry());
}
if (rv.Page_bry() == null) { // 1 seg; EX: "Earth"; "fr.wikipedia.org"
if (wiki != null) { // wiki_bry is known wiki; EX: "fr.wikipedia.org"
- wiki = app.Wiki_mgri().Get_by_key_or_make_3(wiki_bry); // call get again, but this time "make" it
+ wiki = app.Wiki_mgri().Get_by_key_or_make_init_n(wiki_bry); // call get again, but this time "make" it
page_is_main_page = true;
}
else { // otherwise, assume page name
@@ -184,7 +184,7 @@ public class Xoa_url_parser {
if (colon_pos != Bry_.NotFound) { // alias found
Xow_xwiki_itm xwiki = cur_wiki.Xwiki_mgr().Get_by_mid(page_bry, 0, colon_pos);
if (xwiki != null) {
- wiki = app.Wiki_mgri().Get_by_key_or_make_3(xwiki.Domain_bry());
+ wiki = app.Wiki_mgri().Get_by_key_or_make_init_n(xwiki.Domain_bry());
page_bry = Bry_.Mid(page_bry, colon_pos + 1, page_bry.length);
if (rv.Segs_ary().length == 0) // handle xwiki without segs; EX: commons:Commons:Media_of_the_day; DATE:2014-02-19
rv.Segs_ary_(new byte[][] {Bry_wiki_name, page_bry}); // create segs of "/wiki/Page"
@@ -219,7 +219,7 @@ public class Xoa_url_parser {
if (ttl != null) { // can still be empty; EX: "en.wikipedia.org"
Xow_xwiki_itm lang_xwiki = ttl.Wik_itm();
if (lang_xwiki != null && lang_xwiki.Type_is_xwiki_lang(wiki.Lang().Lang_id())) { // format of http://en.wikipedia.org/wiki/fr:A
- wiki = app.Wiki_mgri().Get_by_key_or_make_3(lang_xwiki.Domain_bry());
+ wiki = app.Wiki_mgri().Get_by_key_or_make_init_n(lang_xwiki.Domain_bry());
page_bry = ttl.Page_txt();
}
}
@@ -233,7 +233,7 @@ public class Xoa_url_parser {
if (xwiki == null)
rv = app.User().Wikii();
else
- rv = app.Wiki_mgri().Get_by_key_or_make_3(xwiki.Domain_bry());
+ rv = app.Wiki_mgri().Get_by_key_or_make_init_n(xwiki.Domain_bry());
return rv;
}
private static byte[] Parse_url__combine(Bry_bfr_mkr bry_bfr_mkr, byte[] wiki, byte[][] segs, byte[] page) {
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java b/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
index 9f097aa80..c6f4c72a6 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
@@ -194,8 +194,8 @@ public class Xoa_ttl { // PAGE:en.w:http://en.wikipedia.org/wiki/Help:Link; REF.
qarg_bgn = -1; // always reset qarg; handles ttls which have question_mark which are premptively assumed to be qarg; PAGE:en.w:Portal:Organized_Labour/Did_You_Know?/1 DATE:2014-06-08
}
break; // flag last leaf_bgn
- case Byte_ascii.NewLine: // NOTE: for now, treat nl just like space; not sure if it should accept "a\nb" or "\nab"; need to handle trailing \n for "Argentina\n\n" in {{Infobox settlement|pushpin_map=Argentina|pushpin_label_position=|pushpin_map_alt=|pushpin_map_caption=Location of Salta in Argentina}};
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn: // added \t, \r; DATE:2013-03-27
+ case Byte_ascii.Nl: // NOTE: for now, treat nl just like space; not sure if it should accept "a\nb" or "\nab"; need to handle trailing \n for "Argentina\n\n" in {{Infobox settlement|pushpin_map=Argentina|pushpin_label_position=|pushpin_map_alt=|pushpin_map_caption=Location of Salta in Argentina}};
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Cr: // added \t, \r; DATE:2013-03-27
case Byte_ascii.Underline:if (ltr_bgn != -1) add_ws = true; ++cur;//cur = ttlTrie.Match_pos();
continue; // only mark add_ws if ltr_seen; this ignores ws at bgn; also, note "continue"
case Byte_ascii.Question:
@@ -411,7 +411,7 @@ class Xoa_ttl_trie {
rv.Add(Byte_ascii.Underline , Byte_obj_val.new_(Id_underline));
rv.Add(Byte_ascii.Amp , Byte_obj_val.new_(Id_amp));
rv.Add(Xop_comm_lxr.Bgn_ary , Byte_obj_val.new_(Id_comment_bgn));
- rv.Add(Byte_ascii.NewLine , Byte_obj_val.new_(Id_newLine));
+ rv.Add(Byte_ascii.Nl , Byte_obj_val.new_(Id_newLine));
rv.Add(Byte_ascii.Brack_bgn , Byte_obj_val.new_(Id_invalid));
rv.Add(Byte_ascii.Curly_bgn , Byte_obj_val.new_(Id_invalid));
return rv;
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_ctx_.java b/400_xowa/src_400_parser/gplx/xowa/Xop_ctx_.java
index cc4efdbe7..7bd824481 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_ctx_.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_ctx_.java
@@ -23,7 +23,7 @@ public class Xop_ctx_ {
int src_len = src.length;
if (end > src_len) end = src_len;
byte[] rv = Bry_.Mid(src, bgn, end);
- rv = Bry_.Replace(rv, Byte_ascii.NewLine, Byte_ascii.Tab); // change nl to tab so text editor will show one warning per line
+ rv = Bry_.Replace(rv, Byte_ascii.Nl, Byte_ascii.Tab); // change nl to tab so text editor will show one warning per line
return String_.new_u8(rv);
}
}
\ No newline at end of file
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
index 4af06b4a4..ba47a5643 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
@@ -27,7 +27,7 @@ class Xop_colon_lxr implements Xop_lxr {
int prv_pos = cur_pos -1 ;
if ( ctx.Cur_tkn_tid() != Xop_tkn_itm_.Tid_lnki // ignore if inside link
&& prv_pos > 0
- && src[prv_pos] != Byte_ascii.NewLine // only consider ":" which are not preceded by \n; DATE:2014-07-11 TODO: emulate Parser.php|findColonNoLinks which does much more logic to see if ";a:b" construct should apply
+ && src[prv_pos] != Byte_ascii.Nl // only consider ":" which are not preceded by \n; DATE:2014-07-11 TODO: emulate Parser.php|findColonNoLinks which does much more logic to see if ";a:b" construct should apply
) {
listCtx.Dd_chk_(false);
return listCtx.MakeTkn_bgn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java b/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
index 24b77c135..bc81f87c8 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
@@ -116,7 +116,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
ctx.Parse_tid_(parse_tid_old);
}
public int Parse_to_src_end(Xop_root_tkn root, Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, byte[] src, Btrie_fast_mgr trie, int pos, int len) {
- byte b = pos == -1 ? Byte_ascii.NewLine : src[pos]; // simulate newLine at bgn of src; needed for lxrs which rely on \n (EX: "=a=")
+ byte b = pos == -1 ? Byte_ascii.Nl : src[pos]; // simulate newLine at bgn of src; needed for lxrs which rely on \n (EX: "=a=")
int txt_bgn = pos == -1 ? 0 : pos; Xop_tkn_itm txt_tkn = null;
while (true) {
Object o = trie.Match_bgn_w_byte(b, src, pos, len);
@@ -137,7 +137,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
return pos;
}
public int Parse_to_stack_end(Xop_root_tkn root, Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, byte[] src, int src_len, Btrie_fast_mgr trie, int pos, int end) {
- byte b = pos == -1 ? Byte_ascii.NewLine : src[pos]; // simulate newLine at bgn of src; needed for lxrs which rely on \n (EX: "=a=")
+ byte b = pos == -1 ? Byte_ascii.Nl : src[pos]; // simulate newLine at bgn of src; needed for lxrs which rely on \n (EX: "=a=")
int txt_bgn = pos == -1 ? 0 : pos; Xop_tkn_itm txt_tkn = null;
Xop_lxr lxr = null;
while (true) {
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java b/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
index 625a33573..6d7d928ca 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
@@ -92,7 +92,7 @@ class Xop_redirect_mgr_ {
public static int Get_kwd_end_or_end(byte[] src, int bgn, int end) { // get end of kwd
for (int i = bgn; i < end; ++i) {
switch (src[i]) {
- case Byte_ascii.NewLine: case Byte_ascii.Space: case Byte_ascii.Tab:
+ case Byte_ascii.Nl: case Byte_ascii.Space: case Byte_ascii.Tab:
case Byte_ascii.Brack_bgn: case Byte_ascii.Colon:
return i; // ASSUME: kwd does not have these chars
default:
@@ -105,7 +105,7 @@ class Xop_redirect_mgr_ {
boolean colon_null = true;
for (int i = bgn; i < end; ++i) {
switch (src[i]) {
- case Byte_ascii.NewLine: case Byte_ascii.Space: case Byte_ascii.Tab: break; // skip all ws
+ case Byte_ascii.Nl: case Byte_ascii.Space: case Byte_ascii.Tab: break; // skip all ws
case Byte_ascii.Colon: // allow 1 colon
if (colon_null)
colon_null = false;
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
index a81a6d413..aa72c8d04 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
@@ -70,7 +70,7 @@ public class Xop_comm_lxr implements Xop_lxr {
case Byte_ascii.Space:
case Byte_ascii.Tab:
break;
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
loop = false;
nl_rhs = loop_pos;
break;
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
index ae09e4f1b..fe9845b5a 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
@@ -24,7 +24,7 @@ public class Xop_cr_tkn extends Xop_tkn_itm_base {
class Xop_cr_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_cr;}
public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {
- core_trie.Add(Byte_ascii.CarriageReturn, this);
+ core_trie.Add(Byte_ascii.Cr, this);
}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
index ae3e19919..054ac1e6d 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
@@ -31,12 +31,12 @@ class Xop_eq_lxr implements Xop_lxr {
if ( owner != null && owner.Tkn_tid() == Xop_tkn_itm_.Tid_tmpl_curly_bgn // inside curly
&& eq_len > 1) { // only skip if at least "=="; don't want to skip "=" which could be kv delimiter; DATE:2014-04-17
int prv_pos = bgn_pos - 1;
- if (prv_pos > -1 && src[prv_pos] == Byte_ascii.NewLine) // is prv char \n; EX: "\n==="
+ if (prv_pos > -1 && src[prv_pos] == Byte_ascii.Nl) // is prv char \n; EX: "\n==="
hdr_like = true;
else {
int eol_pos = Bry_finder.Find_fwd_while_space_or_tab(src, cur_pos, src_len); // skip trailing ws; EX: "== \n"; PAGE:nl.q:Geert_Wilders; DATE:2014-06-05
if ( eol_pos == src_len // eos
- || src[eol_pos] == Byte_ascii.NewLine // cur_pos is \n; EX: "===\n"
+ || src[eol_pos] == Byte_ascii.Nl // cur_pos is \n; EX: "===\n"
) {
hdr_like = true;
cur_pos = eol_pos;
@@ -56,7 +56,7 @@ class Xop_eq_lxr implements Xop_lxr {
return cur_pos;
}
int ws_end = Bry_finder.Find_fwd_while_space_or_tab(src, cur_pos, src_len);
- hdr_like = ws_end == src_len || src[ws_end] == Byte_ascii.NewLine; // hdr_like if next char \n or eos
+ hdr_like = ws_end == src_len || src[ws_end] == Byte_ascii.Nl; // hdr_like if next char \n or eos
if (!hdr_like) {
int ctg_end = Xop_nl_lxr.Scan_fwd_for_ctg(ctx, src, cur_pos, src_len); // check if ==[[Category:A]]; DATE:2014-04-17
if ( ctg_end != Bry_.NotFound) { // [[Category: found
@@ -64,7 +64,7 @@ class Xop_eq_lxr implements Xop_lxr {
if (ctg_end != Bry_.NotFound) { // ]] found; note that this should do more validation; EX: [[Category:]] should not be valid; DATE:2014-04-17
ctg_end += Xop_tkn_.Lnki_end_len;
ctg_end = Bry_finder.Find_fwd_while_space_or_tab(src, ctg_end, src_len);
- if (ctg_end == src_len || src[ctg_end] == Byte_ascii.NewLine) // hdr_like if ]]\n after [[Category:A]]
+ if (ctg_end == src_len || src[ctg_end] == Byte_ascii.Nl) // hdr_like if ]]\n after [[Category:A]]
hdr_like = true;
}
}
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
index 04c55f9b6..34b72e6ed 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
public class Xop_hr_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_hr;}
- public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr parse_trie) {parse_trie.Add(Hook_ary, this);} static final byte[] Hook_ary = new byte[] {Byte_ascii.NewLine, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr parse_trie) {parse_trie.Add(Hook_ary, this);} static final byte[] Hook_ary = new byte[] {Byte_ascii.Nl, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int nl_adj = -1; // -1 to ignore nl at bgn for hr_len
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
index 83b6a1af4..03ae167ba 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
@@ -31,7 +31,7 @@ public class Xop_under_lxr_tst {
fxt.Test_parse_page_all_str("a__toc__b", "ab");
}
@Test public void Notoc_basic() {
- fxt.Wtr_cfg().Toc_show_(true); // NOTE: must enable in order for TOC to show (and to make sure NOTOC suppresses)
+ fxt.Wtr_cfg().Toc__show_(Bool_.Y); // NOTE: must enable in order for TOC to show (and to make sure NOTOC suppresses)
fxt.Test_parse_page_all_str(String_.Concat_lines_nl
( "__NOTOC__"
, "==a=="
@@ -47,7 +47,7 @@ public class Xop_under_lxr_tst {
, ""
, "d
"
));
- fxt.Wtr_cfg().Toc_show_(false);
+ fxt.Wtr_cfg().Toc__show_(Bool_.N);
}
@Test public void Ignore_pre() {
fxt.Init_para_y_();
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
index 82aa5882b..8c37f0fd3 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
@@ -344,7 +344,7 @@ public class Xop_lnki_wkr__basic_tst {
Xoae_page previous_page = Xoae_page.test_(wiki, ttl);
previous_page.Redirected_ttls().Add(Bry_.new_a7("Src")); // simulate redirect from "Src"
fxt.App().Usere().History_mgr().Add(previous_page); // simulate "Src" already being clicked once; this is the key call
- fxt.Wtr_cfg().Lnki_visited_(true);
+ fxt.Wtr_cfg().Lnki_visited_y_();
fxt.Test_parse_page_all_str("[[Src]]" , "Src"); // show [[Src]] as visited since it exists in history
fxt.Test_parse_page_all_str("[[Other]]" , "Other"); // show other pages as not visited
}
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_parser.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_parser.java
index 0bcc30541..4c5fda58d 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_parser.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_parser.java
@@ -53,7 +53,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
b = src[i];
switch (b) {
case Byte_ascii.Gt: return i;
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: // skip any ws
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: // skip any ws
break;
case Byte_ascii.Slash:
if (slash_found) {log_mgr.Add_str_warn_key_none(Msg_mgr, "multiple slashes not allowed", src, i); return String_.Find_none;} // only allow one slash
@@ -108,7 +108,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
switch (mode) {
case Mode_atr_bgn:
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: // skip any ws at bgn; note that once a non-ws char is encountered, it will immediately go into another mode
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: // skip any ws at bgn; note that once a non-ws char is encountered, it will immediately go into another mode
break;
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
@@ -143,7 +143,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
break;
case Mode_invalid:
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab:
Make(log_mgr, src, i);
mode = Mode_atr_bgn;
break;
@@ -168,7 +168,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
case Byte_ascii.Colon: case Byte_ascii.Dash: case Byte_ascii.Dot: case Byte_ascii.Underline:
if (key_bfr_on) key_bfr.Add_byte(b);
break;
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab:
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab:
if (valid) {
key_end = i;
mode = Mode_eq;
@@ -201,7 +201,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
break;
case Mode_eq:
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: // skip ws
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: // skip ws
if (key_end == -1) { // EX: "a = b"; key_end != -1 b/c 1st \s sets key_end; EX: "a b = c"; key_end
val_end = i - 1;
Make(log_mgr, src, i);
@@ -223,7 +223,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
break;
case Mode_val_bgn:
switch (b) {
- case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: // skip-ws
+ case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Tab: // skip-ws
ws_is_before_val = true;
break;
case Byte_ascii.Quote: case Byte_ascii.Apos:
@@ -283,7 +283,7 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
}
prv_is_ws = false;
break;
- case Byte_ascii.NewLine: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn: // REF.MW:Sanitizer.php|decodeTagAttributes $value = preg_replace( '/[\t\r\n ]+/', ' ', $value );
+ case Byte_ascii.Nl: case Byte_ascii.Tab: case Byte_ascii.Cr: // REF.MW:Sanitizer.php|decodeTagAttributes $value = preg_replace( '/[\t\r\n ]+/', ' ', $value );
case Byte_ascii.Space:
if (!val_bfr_on) {
val_bfr.Add_mid(src, val_bgn, i);
@@ -314,14 +314,14 @@ public class Xop_xatr_parser { // REF.MW:Sanitizer.php|decodeTagAttributes;MW_AT
case Byte_ascii.Ltr_p: case Byte_ascii.Ltr_q: case Byte_ascii.Ltr_r: case Byte_ascii.Ltr_s: case Byte_ascii.Ltr_t:
case Byte_ascii.Ltr_u: case Byte_ascii.Ltr_v: case Byte_ascii.Ltr_w: case Byte_ascii.Ltr_x: case Byte_ascii.Ltr_y: case Byte_ascii.Ltr_z:
case Byte_ascii.Bang: case Byte_ascii.Hash: case Byte_ascii.Dollar: case Byte_ascii.Percent:
- case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Asterisk:
+ case Byte_ascii.Amp: case Byte_ascii.Paren_bgn: case Byte_ascii.Paren_end: case Byte_ascii.Star:
case Byte_ascii.Comma: case Byte_ascii.Dash: case Byte_ascii.Dot: case Byte_ascii.Slash:
case Byte_ascii.Colon: case Byte_ascii.Semic: case Byte_ascii.Gt:
case Byte_ascii.Question: case Byte_ascii.At: case Byte_ascii.Brack_bgn: case Byte_ascii.Brack_end:
case Byte_ascii.Pow: case Byte_ascii.Underline: case Byte_ascii.Tick:
case Byte_ascii.Curly_bgn: case Byte_ascii.Pipe: case Byte_ascii.Curly_end: case Byte_ascii.Tilde:
break;
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine:
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl:
val_end = i;
Make(log_mgr, src, i);
break;
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_whitelist_mgr.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_whitelist_mgr.java
index 0f62d7201..293d9ad9a 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_whitelist_mgr.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_whitelist_mgr.java
@@ -232,8 +232,8 @@ public class Xop_xatr_whitelist_mgr {
switch (b) {
case Byte_ascii.Space:
case Byte_ascii.Tab:
- case Byte_ascii.CarriageReturn:
- case Byte_ascii.NewLine:
+ case Byte_ascii.Cr:
+ case Byte_ascii.Nl:
break;
default:
return b;
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java
index 4b5ba44fb..90957bef9 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java
@@ -67,7 +67,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
if (tag_obj != null) {
if (atrs_bgn_pos >= src_len) return ctx.Lxr_make_txt_(atrs_bgn_pos); // truncated tag; EX: "
|>)|(!--)~iA";
- case Byte_ascii.Tab: case Byte_ascii.NewLine: case Byte_ascii.CarriageReturn: case Byte_ascii.Space:
+ case Byte_ascii.Tab: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Space:
++atrs_bgn_pos; // set bgn_pos to be after ws
break;
case Byte_ascii.Slash: case Byte_ascii.Gt:
@@ -231,7 +231,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
boolean valid = true;
for (int i = tag_end_pos; i < gtPos; i++) {
switch (src[i]) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: break;
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: break;
case Byte_ascii.Slash: break;
default: valid = false; break;
}
@@ -255,7 +255,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
findPos = end_lhs;
for (int i = end_lhs + end_bry_len; i < src_len; i++) {
switch (src[i]) {
- case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.NewLine: break;
+ case Byte_ascii.Space: case Byte_ascii.Tab: case Byte_ascii.Nl: break;
case Byte_ascii.Slash: break;
case Byte_ascii.Gt: end_rhs = i + 1; i = src_len; break; // +1 to place after Gt
default: findPos = i ; i = src_len; break;
@@ -521,7 +521,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
byte b = src[rv];
switch (b) {
case Byte_ascii.Space:
- case Byte_ascii.NewLine:
+ case Byte_ascii.Nl:
case Byte_ascii.Tab:
++rv;
break;
@@ -674,7 +674,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
case Xop_xnde_tag_.Tid_source: // added on DATE:2014-06-24
case Xop_xnde_tag_.Tid_pre: // NOTE: pre must be an xtn, but does not create an xtn node (it gobbles up everything between); still need to touch the para_wkr; DATE:2014-02-20
ctx.Para().Process_block__xnde(tag, Xop_xnde_tag.Block_bgn);
- if (Bry_finder.Find_fwd(src, Byte_ascii.NewLine, xnde.Tag_open_end(), xnde.Tag_close_bgn()) != Bry_finder.Not_found)
+ if (Bry_finder.Find_fwd(src, Byte_ascii.Nl, xnde.Tag_open_end(), xnde.Tag_close_bgn()) != Bry_finder.Not_found)
ctx.Para().Process_nl(ctx, root, src, xnde.Tag_open_bgn(), xnde.Tag_open_bgn());
ctx.Para().Process_block__xnde(tag, Xop_xnde_tag.Block_end);
break;
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
index 569170e87..2c3123325 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
@@ -30,7 +30,7 @@ public class Xop_curly_bgn_lxr implements Xop_lxr {
rv.Add(Byte_ascii.Colon, Bry_.Empty);
rv.Add(Byte_ascii.Semic, Bry_.Empty);
rv.Add(Byte_ascii.Hash, Bry_.Empty);
- rv.Add(Byte_ascii.Asterisk, Bry_.Empty);
+ rv.Add(Byte_ascii.Star, Bry_.Empty);
return rv;
}
}
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_trace_brief_tst.java b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_trace_brief_tst.java
index cb72a04b9..8d73e8f11 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_trace_brief_tst.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_trace_brief_tst.java
@@ -42,7 +42,7 @@ class Xot_defn_trace_fxt {
Xop_root_tkn root = ctx.Tkn_mkr().Root(src);
fxt.Parser().Parse_page_all_clear(root, ctx, ctx.Tkn_mkr(), src);
ctx.Defn_trace().Print(src, tmp);
- String[] actl_ary = String_.Split(tmp.Xto_str_and_clear(), (char)Byte_ascii.NewLine);
+ String[] actl_ary = String_.Split(tmp.Xto_str_and_clear(), (char)Byte_ascii.Nl);
Tfds.Eq_ary(expd_ary, actl_ary);
} private Bry_bfr tmp = Bry_bfr.new_();
String[] XtoStr(Xot_defn_trace_itm_brief[] ary) {
diff --git a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file-user.xowa b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file-user.xowa
new file mode 100644
index 000000000..8d980f5e1
Binary files /dev/null and b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file-user.xowa differ
diff --git a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file.xowa b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file.xowa
new file mode 100644
index 000000000..f6b819456
Binary files /dev/null and b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-file.xowa differ
diff --git a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-text.xowa b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-text.xowa
index 9bd7c87f9..157d2dc85 100644
Binary files a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-text.xowa and b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org-text.xowa differ