summaryrefslogtreecommitdiffstats
path: root/contrib/libxo/tests/core
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libxo/tests/core')
-rw-r--r--contrib/libxo/tests/core/Makefile.am18
-rw-r--r--contrib/libxo/tests/core/saved/test_01.E.out286
-rw-r--r--contrib/libxo/tests/core/saved/test_01.H.out4
-rw-r--r--contrib/libxo/tests/core/saved/test_01.HIPx.out30
-rw-r--r--contrib/libxo/tests/core/saved/test_01.HP.out30
-rw-r--r--contrib/libxo/tests/core/saved/test_01.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_01.JP.out12
-rw-r--r--contrib/libxo/tests/core/saved/test_01.T.out5
-rw-r--r--contrib/libxo/tests/core/saved/test_01.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_01.XP.out12
-rw-r--r--contrib/libxo/tests/core/saved/test_02.E.out136
-rw-r--r--contrib/libxo/tests/core/saved/test_02.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_02.JP.out4
-rw-r--r--contrib/libxo/tests/core/saved/test_02.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_02.XP.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_03.E.out68
-rw-r--r--contrib/libxo/tests/core/saved/test_04.E.out44
-rw-r--r--contrib/libxo/tests/core/saved/test_05.E.out192
-rw-r--r--contrib/libxo/tests/core/saved/test_06.E.out44
-rw-r--r--contrib/libxo/tests/core/saved/test_07.E.out152
-rw-r--r--contrib/libxo/tests/core/saved/test_08.E.out372
-rw-r--r--contrib/libxo/tests/core/saved/test_09.E.out80
-rw-r--r--contrib/libxo/tests/core/saved/test_10.E.out252
-rw-r--r--contrib/libxo/tests/core/saved/test_10.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_10.XP.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_11.E.out16
-rw-r--r--contrib/libxo/tests/core/saved/test_11.HIPx.out8
-rw-r--r--contrib/libxo/tests/core/saved/test_11.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_11.XP.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_12.E.out180
-rw-r--r--contrib/libxo/tests/core/saved/test_12.H.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_12.HIPx.out89
-rw-r--r--contrib/libxo/tests/core/saved/test_12.HP.out89
-rw-r--r--contrib/libxo/tests/core/saved/test_12.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_12.JP.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_12.T.out42
-rw-r--r--contrib/libxo/tests/core/saved/test_12.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_12.XP.out2
-rw-r--r--contrib/libxo/tests/core/test_01.c12
-rw-r--r--contrib/libxo/tests/core/test_12.c11
40 files changed, 1180 insertions, 1036 deletions
diff --git a/contrib/libxo/tests/core/Makefile.am b/contrib/libxo/tests/core/Makefile.am
index 7e61f55..7f19472 100644
--- a/contrib/libxo/tests/core/Makefile.am
+++ b/contrib/libxo/tests/core/Makefile.am
@@ -66,7 +66,9 @@ EXTRA_DIST = \
${addprefix saved/, ${TEST_CASES:.c=.H.err}} \
${addprefix saved/, ${TEST_CASES:.c=.H.out}} \
${addprefix saved/, ${TEST_CASES:.c=.HIPx.err}} \
- ${addprefix saved/, ${TEST_CASES:.c=.HIPx.out}}
+ ${addprefix saved/, ${TEST_CASES:.c=.HIPx.out}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.E.err}} \
+ ${addprefix saved/, ${TEST_CASES:.c=.E.out}}
S2O = | ${SED} '1,/@@/d'
@@ -79,17 +81,11 @@ valgrind:
#TEST_TRACE = set -x ;
TEST_JIG = \
- ${CHECKER} ./$$base.test ${TEST_OPTS} \
+ ${CHECKER} ./$$base.test --libxo$$xoopts ${TEST_OPTS} \
> out/$$base.$$fmt.out 2> out/$$base.$$fmt.err ; \
${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.out out/$$base.$$fmt.out ${S2O} ; \
${DIFF} -Nu ${srcdir}/saved/$$base.$$fmt.err out/$$base.$$fmt.err ${S2O}
-TEST_ONE = \
- LIBXO_OPTIONS=:W$$fmt ${TEST_JIG}
-
-TEST_TWO = \
- LIBXO_OPTIONS=warn,encoder=test ${TEST_JIG}
-
TEST_FORMATS = T XP JP HP X J H HIPx
test tests: ${bin_PROGRAMS}
@@ -98,12 +94,14 @@ test tests: ${bin_PROGRAMS}
base=`${BASENAME} $$test .c` ; \
(for fmt in ${TEST_FORMATS}; do \
echo "... $$test ... $$fmt ..."; \
- ${TEST_ONE}; \
+ xoopts=:W$$fmt ; \
+ ${TEST_JIG}; \
true; \
done) ; \
(for fmt in E; do \
echo "... $$test ... $$fmt ..."; \
- ${TEST_TWO}; \
+ xoopts==warn,encoder=test ; \
+ ${TEST_JIG}; \
true; \
done) \
done)
diff --git a/contrib/libxo/tests/core/saved/test_01.E.out b/contrib/libxo/tests/core/saved/test_01.E.out
index de23baa..a4ed657 100644
--- a/contrib/libxo/tests/core/saved/test_01.E.out
+++ b/contrib/libxo/tests/core/saved/test_01.E.out
@@ -1,137 +1,149 @@
-op create: [] []
-op open_container: [top] []
-op string: [host] [my-box]
-op string: [domain] [example.com]
-op string: [host] [my-box]
-op string: [domain] [example.com]
-op string: [label] [value]
-op string: [max-chaos] [very]
-op content: [min-chaos] [42]
-op string: [some-chaos] [[42]]
-op string: [host] [my-box]
-op string: [domain] [example.com]
-op attr: [test] [value]
-op open_container: [data] []
-op open_list: [item] []
-op attr: [test2] [value2]
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [GRO-000-415]
-op string: [name] [gum]
-op content: [sold] [1412]
-op content: [in-stock] [54]
-op content: [on-order] [10]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-212]
-op string: [name] [rope]
-op content: [sold] [85]
-op content: [in-stock] [4]
-op content: [on-order] [2]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-517]
-op string: [name] [ladder]
-op content: [sold] [0]
-op content: [in-stock] [2]
-op content: [on-order] [1]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-632]
-op string: [name] [bolt]
-op content: [sold] [4123]
-op content: [in-stock] [144]
-op content: [on-order] [42]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [GRO-000-2331]
-op string: [name] [water]
-op content: [sold] [17]
-op content: [in-stock] [14]
-op content: [on-order] [2]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data] []
-op open_container: [data2] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-415]
-op string: [name] [gum]
-op content: [sold] [1412.0]
-op content: [in-stock] [54]
-op content: [on-order] [10]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-212]
-op string: [name] [rope]
-op content: [sold] [85.0]
-op content: [in-stock] [4]
-op content: [on-order] [2]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-517]
-op string: [name] [ladder]
-op content: [sold] [0]
-op content: [in-stock] [2]
-op content: [on-order] [1]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-632]
-op string: [name] [bolt]
-op content: [sold] [4123.0]
-op content: [in-stock] [144]
-op content: [on-order] [42]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-2331]
-op string: [name] [water]
-op content: [sold] [17.0]
-op content: [in-stock] [14]
-op content: [on-order] [2]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data2] []
-op open_container: [data3] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-533]
-op string: [name] [fish]
-op content: [sold] [1321.0]
-op content: [in-stock] [45]
-op content: [on-order] [1]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data3] []
-op open_container: [data4] []
-op open_list: [item] []
-op attr: [test4] [value4]
-op string: [item] [gum]
-op attr: [test4] [value4]
-op string: [item] [rope]
-op attr: [test4] [value4]
-op string: [item] [ladder]
-op attr: [test4] [value4]
-op string: [item] [bolt]
-op attr: [test4] [value4]
-op string: [item] [water]
-op close_list: [item] []
-op close_container: [data4] []
-op content: [cost] [425]
-op content: [cost] [455]
-op string: [mode] [mode]
-op string: [mode_octal] [octal]
-op string: [links] [links]
-op string: [user] [user]
-op string: [group] [group]
-op string: [mode] [/some/file]
-op content: [mode_octal] [640]
-op content: [links] [1]
-op string: [user] [user]
-op string: [group] [group]
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [top] [] [0x810]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
+op content: [used-percent] [12] [0]
+op content: [kve_start] [0xdeadbeef] [0x8]
+op content: [kve_end] [0xcabb1e] [0x8]
+op string: [host] [my-box] [0x200000]
+op string: [domain] [example.com] [0x200000]
+op string: [host] [my-box] [0x200008]
+op string: [domain] [example.com] [0x200000]
+op string: [label] [value] [0x200000]
+op string: [max-chaos] [very] [0x1000]
+op content: [min-chaos] [42] [0]
+op string: [some-chaos] [[42]] [0]
+op string: [host] [my-box] [0]
+op string: [domain] [example.com] [0]
+op attr: [test] [value] [0]
+op open_container: [data] [] [0x810]
+op open_list: [item] [] [0]
+op attr: [test2] [value2] [0]
+op open_instance: [item] [] [0x810]
+op attr: [test3] [value3] [0]
+op string: [sku] [GRO-000-415] [0x98]
+op string: [name] [gum] [0x80]
+op content: [sold] [1412] [0x20]
+op content: [in-stock] [54] [0]
+op content: [on-order] [10] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-212] [0x98]
+op string: [name] [rope] [0x80]
+op content: [sold] [85] [0x20]
+op content: [in-stock] [4] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-517] [0x98]
+op string: [name] [ladder] [0x80]
+op content: [sold] [0] [0x20]
+op content: [in-stock] [2] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-632] [0x98]
+op string: [name] [bolt] [0x80]
+op content: [sold] [4123] [0x20]
+op content: [in-stock] [144] [0]
+op content: [on-order] [42] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op attr: [test3] [value3] [0]
+op string: [sku] [GRO-000-2331] [0x98]
+op string: [name] [water] [0x80]
+op content: [sold] [17] [0x20]
+op content: [in-stock] [14] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data] [] [0]
+op open_container: [data2] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [GRO-000-415] [0x98]
+op string: [name] [gum] [0x80]
+op content: [sold] [1412.0] [0x20]
+op content: [in-stock] [54] [0]
+op content: [on-order] [10] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [HRD-000-212] [0x98]
+op string: [name] [rope] [0x80]
+op content: [sold] [85.0] [0x20]
+op content: [in-stock] [4] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [HRD-000-517] [0x98]
+op string: [name] [ladder] [0x80]
+op content: [sold] [0] [0x20]
+op content: [in-stock] [2] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [HRD-000-632] [0x98]
+op string: [name] [bolt] [0x80]
+op content: [sold] [4123.0] [0x20]
+op content: [in-stock] [144] [0]
+op content: [on-order] [42] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [GRO-000-2331] [0x98]
+op string: [name] [water] [0x80]
+op content: [sold] [17.0] [0x20]
+op content: [in-stock] [14] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data2] [] [0]
+op open_container: [data3] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [sku] [GRO-000-533] [0x98]
+op string: [name] [fish] [0x80]
+op content: [sold] [1321.0] [0x20]
+op content: [in-stock] [45] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data3] [] [0]
+op open_container: [data4] [] [0x810]
+op open_list: [item] [] [0]
+op attr: [test4] [value4] [0]
+op string: [item] [gum] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [rope] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [ladder] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [bolt] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [water] [0x2000]
+op close_list: [item] [] [0]
+op close_container: [data4] [] [0]
+op content: [cost] [425] [0]
+op content: [cost] [455] [0]
+op string: [mode] [mode] [0x8]
+op string: [mode_octal] [octal] [0x8]
+op string: [links] [links] [0x1000]
+op string: [user] [user] [0x1000]
+op string: [group] [group] [0x1000]
+op string: [pre] [that] [0x8]
+op content: [links] [3] [0x1000]
+op string: [post] [this] [0x1000]
+op string: [mode] [/some/file] [0x1000]
+op content: [mode_octal] [640] [0x8]
+op content: [links] [1] [0x1000]
+op string: [user] [user] [0x1000]
+op string: [group] [group] [0x1000]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_01.H.out b/contrib/libxo/tests/core/saved/test_01.H.out
index 7c0b3de..ebe75e6 100644
--- a/contrib/libxo/tests/core/saved/test_01.H.out
+++ b/contrib/libxo/tests/core/saved/test_01.H.out
@@ -1,2 +1,2 @@
-<div class="line"><div class="text">testing argument modifier </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="text">testing argument modifier with encoding to </div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="label">Label text</div><div class="text"> </div><div class="data" data-tag="label">value</div></div><div class="line"><div class="data" data-tag="max-chaos"> very </div><div class="data" data-tag="min-chaos">42</div><div class="data" data-tag="some-chaos">42
-</div><div class="text">Connecting to </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="title">Item </div><div class="title"> Total Sold</div><div class="title"> In Stock</div><div class="title"> On Order</div><div class="title"> SKU</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="sold"> 1412</div><div class="data" data-tag="in-stock"> 54</div><div class="data" data-tag="on-order"> 10</div><div class="data" data-tag="sku" data-key="key"> GRO-000-415</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="sold"> 85</div><div class="data" data-tag="in-stock"> 4</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> HRD-000-212</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="sold"> 0</div><div class="data" data-tag="in-stock"> 2</div><div class="data" data-tag="on-order"> 1</div><div class="data" data-tag="sku" data-key="key"> HRD-000-517</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="sold"> 4123</div><div class="data" data-tag="in-stock"> 144</div><div class="data" data-tag="on-order"> 42</div><div class="data" data-tag="sku" data-key="key"> HRD-000-632</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="sold"> 17</div><div class="data" data-tag="in-stock"> 14</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">gum</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1412.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">54</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">10</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-415</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">rope</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">85.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">4</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-212</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">ladder</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">2</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-517</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">bolt</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">4123.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">144</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">42</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-632</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">water</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">17.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">14</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-2331</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">fish</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1321.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">45</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-533</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">gum</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">rope</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">ladder</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">bolt</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">water</div></div><div class="line"><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">425</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">455</div></div><div class="line"><div class="text"> </div><div class="data" data-tag="links">links</div><div class="text"> </div><div class="data" data-tag="user">user</div><div class="text"> </div><div class="data" data-tag="group">group</div><div class="text"> </div></div><div class="line"><div class="data" data-tag="mode">/some/file</div><div class="text"> </div><div class="data" data-tag="links"> 1</div><div class="text"> </div><div class="data" data-tag="user">user </div><div class="text"> </div><div class="data" data-tag="group">group </div><div class="text"> </div></div> \ No newline at end of file
+<div class="line"><div class="text">anchor </div><div class="padding"> </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">anchor </div><div class="padding"> </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">anchor </div><div class="padding"> </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">df </div><div class="data" data-tag="used-percent"> 12</div><div class="units">%</div></div><div class="line"><div class="text">testing argument modifier </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="text">testing argument modifier with encoding to </div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="label">Label text</div><div class="text"> </div><div class="data" data-tag="label">value</div></div><div class="line"><div class="data" data-tag="max-chaos"> very </div><div class="data" data-tag="min-chaos">42</div><div class="data" data-tag="some-chaos">42
+</div><div class="text">Connecting to </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="title">Item </div><div class="title"> Total Sold</div><div class="title"> In Stock</div><div class="title"> On Order</div><div class="title"> SKU</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="sold"> 1412</div><div class="data" data-tag="in-stock"> 54</div><div class="data" data-tag="on-order"> 10</div><div class="data" data-tag="sku" data-key="key"> GRO-000-415</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="sold"> 85</div><div class="data" data-tag="in-stock"> 4</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> HRD-000-212</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="sold"> 0</div><div class="data" data-tag="in-stock"> 2</div><div class="data" data-tag="on-order"> 1</div><div class="data" data-tag="sku" data-key="key"> HRD-000-517</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="sold"> 4123</div><div class="data" data-tag="in-stock"> 144</div><div class="data" data-tag="on-order"> 42</div><div class="data" data-tag="sku" data-key="key"> HRD-000-632</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="sold"> 17</div><div class="data" data-tag="in-stock"> 14</div><div class="data" data-tag="on-order"> 2</div><div class="data" data-tag="sku" data-key="key"> GRO-000-2331</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">gum</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1412.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">54</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">10</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-415</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">rope</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">85.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">4</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-212</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">ladder</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">2</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-517</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">bolt</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">4123.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">144</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">42</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-632</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">water</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">17.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">14</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-2331</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">fish</div><div class="text">':</div></div><div class="line"><div class="padding"> </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1321.0</div></div><div class="line"><div class="padding"> </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">45</div></div><div class="line"><div class="padding"> </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding"> </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-533</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">gum</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">rope</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">ladder</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">bolt</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">water</div></div><div class="line"><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">425</div></div><div class="line"><div class="text">X</div><div class="padding"> </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">455</div></div><div class="line"><div class="text"> </div><div class="data" data-tag="links">links</div><div class="text"> </div><div class="data" data-tag="user">user</div><div class="text"> </div><div class="data" data-tag="group">group</div><div class="text"> </div></div><div class="line"><div class="data" data-tag="links">3 </div><div class="data" data-tag="post">this </div></div><div class="line"><div class="data" data-tag="mode">/some/file</div><div class="text"> </div><div class="data" data-tag="links"> 1</div><div class="text"> </div><div class="data" data-tag="user">user </div><div class="text"> </div><div class="data" data-tag="group">group </div><div class="text"> </div></div> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_01.HIPx.out b/contrib/libxo/tests/core/saved/test_01.HIPx.out
index f6c7290..d96b855 100644
--- a/contrib/libxo/tests/core/saved/test_01.HIPx.out
+++ b/contrib/libxo/tests/core/saved/test_01.HIPx.out
@@ -1,4 +1,30 @@
<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
+ <div class="text">df </div>
+ <div class="data" data-tag="used-percent" data-xpath="/top/used-percent"> 12</div>
+ <div class="units">%</div>
+</div>
+<div class="line">
<div class="text">testing argument modifier </div>
<div class="data" data-tag="host" data-xpath="/top/host">my-box</div>
<div class="text">.</div>
@@ -333,6 +359,10 @@
<div class="text"> </div>
</div>
<div class="line">
+ <div class="data" data-tag="links" data-xpath="/top/links">3 </div>
+ <div class="data" data-tag="post" data-xpath="/top/post">this </div>
+</div>
+<div class="line">
<div class="data" data-tag="mode" data-xpath="/top/mode">/some/file</div>
<div class="text"> </div>
<div class="data" data-tag="links" data-xpath="/top/links"> 1</div>
diff --git a/contrib/libxo/tests/core/saved/test_01.HP.out b/contrib/libxo/tests/core/saved/test_01.HP.out
index 0fdcbd1..3253aa0 100644
--- a/contrib/libxo/tests/core/saved/test_01.HP.out
+++ b/contrib/libxo/tests/core/saved/test_01.HP.out
@@ -1,4 +1,30 @@
<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
+ <div class="text">anchor </div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="address">0x0</div>
+ <div class="text">..</div>
+ <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
+ <div class="text">df </div>
+ <div class="data" data-tag="used-percent"> 12</div>
+ <div class="units">%</div>
+</div>
+<div class="line">
<div class="text">testing argument modifier </div>
<div class="data" data-tag="host">my-box</div>
<div class="text">.</div>
@@ -333,6 +359,10 @@
<div class="text"> </div>
</div>
<div class="line">
+ <div class="data" data-tag="links">3 </div>
+ <div class="data" data-tag="post">this </div>
+</div>
+<div class="line">
<div class="data" data-tag="mode">/some/file</div>
<div class="text"> </div>
<div class="data" data-tag="links"> 1</div>
diff --git a/contrib/libxo/tests/core/saved/test_01.J.out b/contrib/libxo/tests/core/saved/test_01.J.out
index 3fc12a1..ad73058 100644
--- a/contrib/libxo/tests/core/saved/test_01.J.out
+++ b/contrib/libxo/tests/core/saved/test_01.J.out
@@ -1,2 +1,2 @@
-{"top": {"host":"my-box","domain":"example.com","host":"my-box","domain":"example.com","label":"value","max-chaos":"very","min-chaos":42,"some-chaos":"[42]","host":"my-box","domain":"example.com", "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data2": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data3": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data4": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455,"mode":"mode","mode_octal":"octal","links":"links","user":"user","group":"group","mode":"/some/file","mode_octal":640,"links":1,"user":"user","group":"group"}
+{"top": {"address":"0x0","port":1,"address":"0x0","port":1,"address":"0x0","port":1,"used-percent":12,"kve_start":"0xdeadbeef","kve_end":"0xcabb1e","host":"my-box","domain":"example.com","host":"my-box","domain":"example.com","label":"value","max-chaos":"very","min-chaos":42,"some-chaos":"[42]","host":"my-box","domain":"example.com", "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data2": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data3": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data4": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455,"mode":"mode","mode_octal":"octal","links":"links","user":"user","group":"group","pre":"that","links":3,"post":"this","mode":"/some/file","mode_octal":640,"links":1,"user":"user","group":"group"}
}
diff --git a/contrib/libxo/tests/core/saved/test_01.JP.out b/contrib/libxo/tests/core/saved/test_01.JP.out
index 2c7397f..6aeef16 100644
--- a/contrib/libxo/tests/core/saved/test_01.JP.out
+++ b/contrib/libxo/tests/core/saved/test_01.JP.out
@@ -1,5 +1,14 @@
{
"top": {
+ "address": "0x0",
+ "port": 1,
+ "address": "0x0",
+ "port": 1,
+ "address": "0x0",
+ "port": 1,
+ "used-percent": 12,
+ "kve_start": "0xdeadbeef",
+ "kve_end": "0xcabb1e",
"host": "my-box",
"domain": "example.com",
"host": "my-box",
@@ -115,6 +124,9 @@
"links": "links",
"user": "user",
"group": "group",
+ "pre": "that",
+ "links": 3,
+ "post": "this",
"mode": "/some/file",
"mode_octal": 640,
"links": 1,
diff --git a/contrib/libxo/tests/core/saved/test_01.T.out b/contrib/libxo/tests/core/saved/test_01.T.out
index 71cd130..d454270 100644
--- a/contrib/libxo/tests/core/saved/test_01.T.out
+++ b/contrib/libxo/tests/core/saved/test_01.T.out
@@ -1,3 +1,7 @@
+anchor 0x0..1
+anchor 0x0..1
+anchor 0x0..1
+df 12%
testing argument modifier my-box.example.com...
testing argument modifier with encoding to .example.com...
Label text value
@@ -50,4 +54,5 @@ XXXXXXXX
X XCost: 425
X XCost: 455
links user group
+3 this
/some/file 1 user group
diff --git a/contrib/libxo/tests/core/saved/test_01.X.out b/contrib/libxo/tests/core/saved/test_01.X.out
index da80e68..226a4a4 100644
--- a/contrib/libxo/tests/core/saved/test_01.X.out
+++ b/contrib/libxo/tests/core/saved/test_01.X.out
@@ -1 +1 @@
-<top><host>my-box</host><domain>example.com</domain><host>my-box</host><domain>example.com</domain><label>value</label><max-chaos>very</max-chaos><min-chaos>42</min-chaos><some-chaos>[42]</some-chaos><host>my-box</host><domain>example.com</domain><data test="value"><item test2="value2"><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data2><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data2><data3><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data3><data4><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data4><cost>425</cost><cost>455</cost><mode>mode</mode><mode_octal>octal</mode_octal><links>links</links><user>user</user><group>group</group><mode>/some/file</mode><mode_octal>640</mode_octal><links>1</links><user>user</user><group>group</group></top> \ No newline at end of file
+<top><address>0x0</address><port>1</port><address>0x0</address><port>1</port><address>0x0</address><port>1</port><used-percent>12</used-percent><kve_start>0xdeadbeef</kve_start><kve_end>0xcabb1e</kve_end><host>my-box</host><domain>example.com</domain><host>my-box</host><domain>example.com</domain><label>value</label><max-chaos>very</max-chaos><min-chaos>42</min-chaos><some-chaos>[42]</some-chaos><host>my-box</host><domain>example.com</domain><data test="value"><item test2="value2"><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data2><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data2><data3><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data3><data4><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data4><cost>425</cost><cost>455</cost><mode>mode</mode><mode_octal>octal</mode_octal><links>links</links><user>user</user><group>group</group><pre>that</pre><links>3</links><post>this</post><mode>/some/file</mode><mode_octal>640</mode_octal><links>1</links><user>user</user><group>group</group></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_01.XP.out b/contrib/libxo/tests/core/saved/test_01.XP.out
index c331dce..1e1be56 100644
--- a/contrib/libxo/tests/core/saved/test_01.XP.out
+++ b/contrib/libxo/tests/core/saved/test_01.XP.out
@@ -1,4 +1,13 @@
<top>
+ <address>0x0</address>
+ <port>1</port>
+ <address>0x0</address>
+ <port>1</port>
+ <address>0x0</address>
+ <port>1</port>
+ <used-percent>12</used-percent>
+ <kve_start>0xdeadbeef</kve_start>
+ <kve_end>0xcabb1e</kve_end>
<host>my-box</host>
<domain>example.com</domain>
<host>my-box</host>
@@ -106,6 +115,9 @@
<links>links</links>
<user>user</user>
<group>group</group>
+ <pre>that</pre>
+ <links>3</links>
+ <post>this</post>
<mode>/some/file</mode>
<mode_octal>640</mode_octal>
<links>1</links>
diff --git a/contrib/libxo/tests/core/saved/test_02.E.out b/contrib/libxo/tests/core/saved/test_02.E.out
index 9e1ec96..6cc40e4 100644
--- a/contrib/libxo/tests/core/saved/test_02.E.out
+++ b/contrib/libxo/tests/core/saved/test_02.E.out
@@ -1,68 +1,68 @@
-op create: [] []
-op open_container: [top] []
-op open_container: [data] []
-op string: [what] [braces]
-op string: [length] [abcdef]
-op content: [fd] [-1]
-op string: [error] [Bad file descriptor]
-op string: [test] [good]
-op content: [fd] [-1]
-op string: [error] [Bad fi]
-op string: [test] [good]
-op content: [lines] [20]
-op content: [words] [30]
-op content: [characters] [40]
-op open_leaf_list: [bytes] []
-op content: [bytes] [0]
-op content: [bytes] [1]
-op content: [bytes] [2]
-op content: [bytes] [3]
-op content: [bytes] [4]
-op close_leaf_list: [bytes] []
-op content: [mbuf-current] [10]
-op content: [mbuf-cache] [20]
-op content: [mbuf-total] [30]
-op content: [distance] [50]
-op string: [location] [Boston]
-op content: [memory] [64]
-op content: [total] [640]
-op content: [memory] [64]
-op content: [total] [640]
-op content: [ten] [10]
-op content: [eleven] [11]
-op content: [unknown] [1010]
-op content: [unknown] [1010]
-op content: [min] [15]
-op content: [cur] [20]
-op content: [max] [30]
-op content: [min] [15]
-op content: [cur] [20]
-op content: [max] [125]
-op content: [min] [15]
-op content: [cur] [20]
-op content: [max] [125]
-op content: [min] [15]
-op content: [cur] [20]
-op content: [max] [125]
-op content: [val1] [21]
-op content: [val2] [58368]
-op content: [val3] [100663296]
-op content: [val4] [44470272]
-op content: [val5] [1342172800]
-op open_list: [flag] []
-op string: [flag] [one]
-op string: [flag] [two]
-op string: [flag] [three]
-op close_list: [flag] []
-op content: [works] [null]
-op content: [empty-tag] [true]
-op string: [t1] [1000]
-op string: [t2] [test5000]
-op string: [t3] [ten-longx]
-op string: [t4] [xtest]
-op content: [count] [10]
-op content: [test] [4]
-op close_container: [data] []
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [top] [] [0x40010]
+op open_container: [data] [] [0x40010]
+op string: [what] [braces] [0]
+op string: [length] [abcdef] [0]
+op content: [fd] [-1] [0]
+op string: [error] [Bad file descriptor] [0]
+op string: [test] [good] [0]
+op content: [fd] [-1] [0]
+op string: [error] [Bad fi] [0]
+op string: [test] [good] [0]
+op content: [lines] [20] [0]
+op content: [words] [30] [0]
+op content: [characters] [40] [0]
+op open_leaf_list: [bytes] [] [0]
+op content: [bytes] [0] [0x2004]
+op content: [bytes] [1] [0x2004]
+op content: [bytes] [2] [0x2004]
+op content: [bytes] [3] [0x2004]
+op content: [bytes] [4] [0x2004]
+op close_leaf_list: [bytes] [] [0]
+op content: [mbuf-current] [10] [0]
+op content: [mbuf-cache] [20] [0]
+op content: [mbuf-total] [30] [0]
+op content: [distance] [50] [0]
+op string: [location] [Boston] [0]
+op content: [memory] [64] [0]
+op content: [total] [640] [0]
+op content: [memory] [64] [0]
+op content: [total] [640] [0]
+op content: [ten] [10] [0]
+op content: [eleven] [11] [0]
+op content: [unknown] [1010] [0]
+op content: [unknown] [1010] [0]
+op content: [min] [15] [0x20]
+op content: [cur] [20] [0x20]
+op content: [max] [125] [0]
+op content: [min] [15] [0]
+op content: [cur] [20] [0]
+op content: [max] [125] [0]
+op content: [min] [15] [0x20]
+op content: [cur] [20] [0x20]
+op content: [max] [125] [0x20]
+op content: [min] [15] [0]
+op content: [cur] [20] [0]
+op content: [max] [125] [0]
+op content: [val1] [21] [0x8000]
+op content: [val2] [58368] [0x18000]
+op content: [val3] [100663296] [0x28000]
+op content: [val4] [44470272] [0x48000]
+op content: [val5] [1342172800] [0x28000]
+op open_list: [flag] [] [0]
+op string: [flag] [one] [0x2010]
+op string: [flag] [two] [0x2010]
+op string: [flag] [three] [0x2010]
+op close_list: [flag] [] [0]
+op content: [works] [null] [0x20]
+op content: [empty-tag] [true] [0x8]
+op string: [t1] [1000] [0x1010]
+op string: [t2] [test5000] [0x1010]
+op string: [t3] [ten-longx] [0x1010]
+op string: [t4] [xtest] [0x1010]
+op content: [count] [10] [0]
+op content: [test] [4] [0]
+op close_container: [data] [] [0]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_02.J.out b/contrib/libxo/tests/core/saved/test_02.J.out
index 5578389..cafe771 100644
--- a/contrib/libxo/tests/core/saved/test_02.J.out
+++ b/contrib/libxo/tests/core/saved/test_02.J.out
@@ -1,2 +1,2 @@
-{"top": {"data": {"what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":30,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":this is an warning}, "__warning": {"message":"two more warnings"},"count":10,"test":4, "error": {"message":"Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"}}}
+{"top": {"data": {"what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":"this is an warning"}, "__warning": {"message":"two more warnings"},"count":10,"test":4, "error": {"message":"Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"}}}
}
diff --git a/contrib/libxo/tests/core/saved/test_02.JP.out b/contrib/libxo/tests/core/saved/test_02.JP.out
index fd910aa..9e40703 100644
--- a/contrib/libxo/tests/core/saved/test_02.JP.out
+++ b/contrib/libxo/tests/core/saved/test_02.JP.out
@@ -34,7 +34,7 @@
"unknown": 1010,
"min": 15,
"cur": 20,
- "max": 30,
+ "max": 125,
"min": 15,
"cur": 20,
"max": 125,
@@ -67,7 +67,7 @@
"message": "two more errors"
},
"__warning": {
- "message": this is an warning
+ "message": "this is an warning"
},
"__warning": {
"message": "two more warnings"
diff --git a/contrib/libxo/tests/core/saved/test_02.X.out b/contrib/libxo/tests/core/saved/test_02.X.out
index 30421ea..49e9355 100644
--- a/contrib/libxo/tests/core/saved/test_02.X.out
+++ b/contrib/libxo/tests/core/saved/test_02.X.out
@@ -2,6 +2,6 @@
</message><message>abcdef: Bad file descriptor
</message><message>improper use of profanity; ten yard penalty; first down
</message><length>abcdef</length><fd>-1</fd><error>Bad file descriptor</error><test>good</test><fd>-1</fd><error>Bad fi</error><test>good</test><message>improper use of profanity; ten yard penalty; first down
-</message><lines>20</lines><words>30</words><characters>40</characters><bytes>0</bytes><bytes>1</bytes><bytes>2</bytes><bytes>3</bytes><bytes>4</bytes><mbuf-current>10</mbuf-current><mbuf-cache>20</mbuf-cache><mbuf-total>30</mbuf-total><distance units="miles">50</distance><location>Boston</location><memory units="k">64</memory><total units="kb">640</total><memory units="k">64</memory><total units="kilobytes">640</total><ten>10</ten><eleven>11</eleven><unknown>1010</unknown><unknown>1010</unknown><min>15</min><cur>20</cur><max>30</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><val1>21</val1><val2>58368</val2><val3>100663296</val3><val4>44470272</val4><val5>1342172800</val5><flag>one</flag><flag>two</flag><flag>three</flag><works>null</works><empty-tag></empty-tag><t1>1000</t1><t2>test5000</t2><t3>ten-longx</t3><t4>xtest</t4><__error><message>this is an error</message></__error><__error><message>two more errors</message></__error><__warning><message>this is an warning</message></__warning><__warning><message>two more warnings</message></__warning><count>10</count><test>4</test><message>improper use of profanity; ten yard penalty; first down
+</message><lines>20</lines><words>30</words><characters>40</characters><bytes>0</bytes><bytes>1</bytes><bytes>2</bytes><bytes>3</bytes><bytes>4</bytes><mbuf-current>10</mbuf-current><mbuf-cache>20</mbuf-cache><mbuf-total>30</mbuf-total><distance units="miles">50</distance><location>Boston</location><memory units="k">64</memory><total units="kb">640</total><memory units="k">64</memory><total units="kilobytes">640</total><ten>10</ten><eleven>11</eleven><unknown>1010</unknown><unknown>1010</unknown><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><val1>21</val1><val2>58368</val2><val3>100663296</val3><val4>44470272</val4><val5>1342172800</val5><flag>one</flag><flag>two</flag><flag>three</flag><works>null</works><empty-tag></empty-tag><t1>1000</t1><t2>test5000</t2><t3>ten-longx</t3><t4>xtest</t4><__error><message>this is an error</message></__error><__error><message>two more errors</message></__error><__warning><message>this is an warning</message></__warning><__warning><message>two more warnings</message></__warning><count>10</count><test>4</test><message>improper use of profanity; ten yard penalty; first down
</message><error><message>Shut 'er down, Clancey! She's a-pumpin' mud! &lt;&gt;!,"!&lt;&gt;
</message></error></data></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_02.XP.out b/contrib/libxo/tests/core/saved/test_02.XP.out
index e70e6ef..e5172d3 100644
--- a/contrib/libxo/tests/core/saved/test_02.XP.out
+++ b/contrib/libxo/tests/core/saved/test_02.XP.out
@@ -39,7 +39,7 @@
<unknown>1010</unknown>
<min>15</min>
<cur>20</cur>
- <max>30</max>
+ <max>125</max>
<min>15</min>
<cur>20</cur>
<max>125</max>
diff --git a/contrib/libxo/tests/core/saved/test_03.E.out b/contrib/libxo/tests/core/saved/test_03.E.out
index c68081f..21bf7d2 100644
--- a/contrib/libxo/tests/core/saved/test_03.E.out
+++ b/contrib/libxo/tests/core/saved/test_03.E.out
@@ -1,34 +1,34 @@
-op create: [] []
-op open_container: [employees] []
-op open_list: [employee] []
-op close_list: [employee] []
-op string: [extra] []
-op open_list: [memory] []
-op open_instance: [memory] []
-op string: [type] [name]
-op content: [in-use] [12345]
-op content: [memory-use] [54321]
-op string: [high-use] [-]
-op content: [requests] [32145]
-op close_instance: [memory] []
-op close_list: [memory] []
-op open_list: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Terry]
-op string: [last-name] [Jones]
-op content: [department] [660]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Leslie]
-op string: [last-name] [Patterson]
-op content: [department] [341]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Ashley]
-op string: [last-name] [Smith]
-op content: [department] [1440]
-op close_instance: [employee] []
-op close_list: [employee] []
-op close_container: [employees] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [employees] [] [0x10]
+op open_list: [employee] [] [0]
+op close_list: [employee] [] [0]
+op string: [extra] [] [0]
+op open_list: [memory] [] [0]
+op open_instance: [memory] [] [0x10]
+op string: [type] [name] [0x80]
+op content: [in-use] [12345] [0]
+op content: [memory-use] [54321] [0]
+op string: [high-use] [-] [0]
+op content: [requests] [32145] [0]
+op close_instance: [memory] [] [0]
+op close_list: [memory] [] [0]
+op open_list: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Terry] [0]
+op string: [last-name] [Jones] [0]
+op content: [department] [660] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Leslie] [0]
+op string: [last-name] [Patterson] [0]
+op content: [department] [341] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Ashley] [0]
+op string: [last-name] [Smith] [0]
+op content: [department] [1440] [0]
+op close_instance: [employee] [] [0]
+op close_list: [employee] [] [0]
+op close_container: [employees] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_04.E.out b/contrib/libxo/tests/core/saved/test_04.E.out
index 3965783..cfb751d 100644
--- a/contrib/libxo/tests/core/saved/test_04.E.out
+++ b/contrib/libxo/tests/core/saved/test_04.E.out
@@ -1,22 +1,22 @@
-op create: [] []
-op open_container: [employees] []
-op open_list: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Terry]
-op string: [last-name] [Jones]
-op content: [department] [660]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Leslie]
-op string: [last-name] [Patterson]
-op content: [department] [341]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Ashley]
-op string: [last-name] [Smith]
-op content: [department] [1440]
-op close_instance: [employee] []
-op close_list: [employee] []
-op close_container: [employees] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [employees] [] [0x10]
+op open_list: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Terry] [0]
+op string: [last-name] [Jones] [0]
+op content: [department] [660] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Leslie] [0]
+op string: [last-name] [Patterson] [0]
+op content: [department] [341] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x10]
+op string: [first-name] [Ashley] [0]
+op string: [last-name] [Smith] [0]
+op content: [department] [1440] [0]
+op close_instance: [employee] [] [0]
+op close_list: [employee] [] [0]
+op close_container: [employees] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_05.E.out b/contrib/libxo/tests/core/saved/test_05.E.out
index 0ca15f4..8e8fcfe 100644
--- a/contrib/libxo/tests/core/saved/test_05.E.out
+++ b/contrib/libxo/tests/core/saved/test_05.E.out
@@ -1,96 +1,96 @@
-op create: [] []
-op open_container: [indian-languages] []
-op string: [gurmukhi] [ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।]
-op string: [shahmukhi] [لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔]
-op string: [tranliteration] [lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.]
-op close_container: [indian-languages] []
-op open_container: [employees] []
-op open_leaf_list: [wc] []
-op string: [wc] [෴ - 0xdf4 - 1]
-op string: [wc] [ණ - 0xdab - 1]
-op string: [wc] [් - 0xdca - 0]
-op string: [wc] [ණ - 0xdab - 1]
-op string: [wc] [្ - 0x17d2 - 0]
-op string: [wc] [෴ - 0xdf4 - 1]
-op string: [wc] [1 - 0x31 - 1]
-op string: [wc] [͏ - 0x34f - 0]
-op string: [wc] [2 - 0x32 - 1]
-op string: [wc] [⃝ - 0x20dd - 0]
-op close_leaf_list: [wc] []
-op string: [fancy] [1͏2⃝]
-op string: [v1] [γιγνώσκειν]
-op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι]
-op string: [v1] [ახლავე გაიაროთ რეგისტრაცია]
-op string: [v2] [Unicode-ის მეათე საერთაშორისო]
-op content: [width] [55]
-op string: [sinhala] [෴ණ්ණ෴]
-op content: [width] [4]
-op string: [sinhala] [෴]
-op content: [width] [1]
-op string: [sinhala] [෴ණ්ණ෴෴ණ්ණ෴]
-op content: [width] [8]
-op string: [not-sinhala] [123456]
-op string: [tag] [ර්‍ඝ]
-op content: [width] [2]
-op open_list: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Jim]
-op string: [nic-name] ["რეგტ"]
-op string: [last-name] [გთხოვთ ახ]
-op content: [department] [431]
-op content: [percent-time] [90]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Terry]
-op string: [nic-name] ["<one"]
-op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones]
-op content: [department] [660]
-op content: [percent-time] [90]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Leslie]
-op string: [nic-name] ["Les"]
-op string: [last-name] [Patterson]
-op content: [department] [341]
-op content: [percent-time] [60]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Ashley]
-op string: [nic-name] ["Ash"]
-op string: [last-name] [Meter & Smith]
-op content: [department] [1440]
-op content: [percent-time] [40]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [0123456789]
-op string: [nic-name] ["0123456789"]
-op string: [last-name] [012345678901234567890]
-op content: [department] [1440]
-op content: [percent-time] [40]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [ახლა]
-op string: [nic-name] ["გაიარო"]
-op string: [last-name] [საერთაშორისო]
-op content: [department] [123]
-op content: [percent-time] [90]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [෴ණ්ණ෴෴ණ්ණ෴]
-op string: [nic-name] ["Mick"]
-op string: [last-name] [෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴]
-op content: [department] [110]
-op content: [percent-time] [20]
-op close_instance: [employee] []
-op close_list: [employee] []
-op close_container: [employees] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [indian-languages] [] [0x200010]
+op string: [gurmukhi] [ਲਹੌਰ ਪਾਕਿਸਤਾਨੀ ਪੰਜਾਬ ਦੀ ਰਾਜਧਾਨੀ ਹੈ । ਲੋਕ ਗਿਣਤੀ ਦੇ ਨਾਲ ਕਰਾਚੀ ਤੋਂ ਬਾਅਦ ਲਹੌਰ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਸ਼ਹਿਰ ਹੈ । ਲਹੌਰ ਪਾਕਿਸਤਾਨ ਦਾ ਸਿਆਸੀ, ਰਹਤਲੀ ਤੇ ਪੜ੍ਹਾਈ ਦਾ ਗੜ੍ਹ ਹੈ ਅਤੇ ਇਸ ਲਈ ਇਹਨੂੰ ਪਾਕਿਸਤਾਨ ਦਾ ਦਿਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ । ਲਹੌਰ ਦਰਿਆ-ਏ-ਰਾਵੀ ਦੇ ਕੰਢੇ ਤੇ ਵਸਦਾ ਹੈ ਤੇ ਇਸਦੀ ਲੋਕ ਗਿਣਤੀ ਇੱਕ ਕਰੋੜ ਦੇ ਨੇੜੇ ਹੈ ।] [0]
+op string: [shahmukhi] [لہور پاکستانی پنجاب دا دارالحکومت اے۔ لوک گنتی دے نال کراچی توں بعد لہور دوجا سبھ توں وڈا شہر اے۔ لہور پاکستان دا سیاسی، رہتلی تے پڑھائی دا گڑھ اے تے اس لئی ایھنوں پاکستان دا دل وی کیھا جاندا اے۔ لہور دریاۓ راوی دے کنڈھے تے وسدا اے اسدی لوک گنتی اک کروڑ دے نیڑے اے ۔] [0]
+op string: [tranliteration] [lahor pākistān panjāb dā dārul hakūmat ē. lōk giṇtī dē nāḷ karācī tō᷈ bāad lahor dūjā sab tō᷈ vaḍḍā shahr ē. lahor pākistān dā siāsī, rahtalī tē paṛā̀ī dā gā́ṛ ē tē is laī ihnū᷈ pākistān dā dil vī kehā jāndā ē. lahor dariāē rāvī dē kanḍē tē vasdā ē. isdī lōk giṇtī ikk karōṛ dē nēṛē ē.] [0]
+op close_container: [indian-languages] [] [0]
+op open_container: [employees] [] [0x200010]
+op open_leaf_list: [wc] [] [0]
+op string: [wc] [෴ - 0xdf4 - 1] [0x2010]
+op string: [wc] [ණ - 0xdab - 1] [0x2010]
+op string: [wc] [් - 0xdca - 0] [0x2010]
+op string: [wc] [ණ - 0xdab - 1] [0x2010]
+op string: [wc] [្ - 0x17d2 - 0] [0x2010]
+op string: [wc] [෴ - 0xdf4 - 1] [0x2010]
+op string: [wc] [1 - 0x31 - 1] [0x2010]
+op string: [wc] [͏ - 0x34f - 0] [0x2010]
+op string: [wc] [2 - 0x32 - 1] [0x2010]
+op string: [wc] [⃝ - 0x20dd - 0] [0x2010]
+op close_leaf_list: [wc] [] [0]
+op string: [fancy] [1͏2⃝] [0]
+op string: [v1] [γιγνώσκειν] [0]
+op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι] [0]
+op string: [v1] [ახლავე გაიაროთ რეგისტრაცია] [0]
+op string: [v2] [Unicode-ის მეათე საერთაშორისო] [0]
+op content: [width] [55] [0]
+op string: [sinhala] [෴ණ්ණ෴] [0]
+op content: [width] [4] [0]
+op string: [sinhala] [෴] [0]
+op content: [width] [1] [0]
+op string: [sinhala] [෴ණ්ණ෴෴ණ්ණ෴] [0]
+op content: [width] [8] [0]
+op string: [not-sinhala] [123456] [0]
+op string: [tag] [ර්‍ඝ] [0]
+op content: [width] [2] [0]
+op open_list: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Jim] [0]
+op string: [nic-name] ["რეგტ"] [0]
+op string: [last-name] [გთხოვთ ახ] [0]
+op content: [department] [431] [0]
+op content: [percent-time] [90] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Terry] [0]
+op string: [nic-name] ["<one"] [0]
+op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones] [0]
+op content: [department] [660] [0]
+op content: [percent-time] [90] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Leslie] [0]
+op string: [nic-name] ["Les"] [0]
+op string: [last-name] [Patterson] [0]
+op content: [department] [341] [0]
+op content: [percent-time] [60] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Ashley] [0]
+op string: [nic-name] ["Ash"] [0]
+op string: [last-name] [Meter & Smith] [0]
+op content: [department] [1440] [0]
+op content: [percent-time] [40] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [0123456789] [0]
+op string: [nic-name] ["0123456789"] [0]
+op string: [last-name] [012345678901234567890] [0]
+op content: [department] [1440] [0]
+op content: [percent-time] [40] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [ახლა] [0]
+op string: [nic-name] ["გაიარო"] [0]
+op string: [last-name] [საერთაშორისო] [0]
+op content: [department] [123] [0]
+op content: [percent-time] [90] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [෴ණ්ණ෴෴ණ්ණ෴] [0]
+op string: [nic-name] ["Mick"] [0]
+op string: [last-name] [෴ණ්ණ෴෴ණ්ණ෴෴ණ්ණ෴෴෴] [0]
+op content: [department] [110] [0]
+op content: [percent-time] [20] [0]
+op close_instance: [employee] [] [0]
+op close_list: [employee] [] [0]
+op close_container: [employees] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_06.E.out b/contrib/libxo/tests/core/saved/test_06.E.out
index 3965783..12ba8aa 100644
--- a/contrib/libxo/tests/core/saved/test_06.E.out
+++ b/contrib/libxo/tests/core/saved/test_06.E.out
@@ -1,22 +1,22 @@
-op create: [] []
-op open_container: [employees] []
-op open_list: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Terry]
-op string: [last-name] [Jones]
-op content: [department] [660]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Leslie]
-op string: [last-name] [Patterson]
-op content: [department] [341]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Ashley]
-op string: [last-name] [Smith]
-op content: [department] [1440]
-op close_instance: [employee] []
-op close_list: [employee] []
-op close_container: [employees] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [employees] [] [0x410]
+op open_list: [employee] [] [0]
+op open_instance: [employee] [] [0x410]
+op string: [first-name] [Terry] [0]
+op string: [last-name] [Jones] [0]
+op content: [department] [660] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x410]
+op string: [first-name] [Leslie] [0]
+op string: [last-name] [Patterson] [0]
+op content: [department] [341] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x410]
+op string: [first-name] [Ashley] [0]
+op string: [last-name] [Smith] [0]
+op content: [department] [1440] [0]
+op close_instance: [employee] [] [0]
+op close_list: [employee] [] [0]
+op close_container: [employees] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_07.E.out b/contrib/libxo/tests/core/saved/test_07.E.out
index 45e4b69..8503ce8 100644
--- a/contrib/libxo/tests/core/saved/test_07.E.out
+++ b/contrib/libxo/tests/core/saved/test_07.E.out
@@ -1,76 +1,76 @@
-op create: [] []
-op open_container: [employees] []
-op open_list: [test] []
-op open_instance: [test] []
-op string: [filename] [(null)]
-op close_instance: [test] []
-op close_list: [test] []
-op string: [v1] [γιγνώσκειν]
-op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι]
-op content: [columns] [28]
-op content: [columns] [2]
-op string: [v1] [ახლავე გაიაროთ რეგისტრაცია]
-op string: [v2] [Unicode-ის მეათე საერთაშორისო]
-op content: [columns] [55]
-op content: [columns] [0]
-op open_list: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Jim]
-op string: [nic-name] ["რეგტ"]
-op string: [last-name] [გთხოვთ ახ]
-op content: [department] [431]
-op content: [percent-time] [90]
-op content: [columns] [23]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Terry]
-op string: [nic-name] ["<one"]
-op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones]
-op content: [department] [660]
-op content: [percent-time] [90]
-op content: [columns] [47]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Leslie]
-op string: [nic-name] ["Les"]
-op string: [last-name] [Patterson]
-op content: [department] [341]
-op content: [percent-time] [60]
-op content: [columns] [25]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [Ashley]
-op string: [nic-name] ["Ash"]
-op string: [last-name] [Meter & Smith]
-op content: [department] [1440]
-op content: [percent-time] [40]
-op content: [columns] [30]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [0123456789]
-op string: [nic-name] ["0123456789"]
-op string: [last-name] [012345678901234567890]
-op content: [department] [1440]
-op content: [percent-time] [40]
-op content: [columns] [49]
-op close_instance: [employee] []
-op open_instance: [employee] []
-op string: [first-name] [ახლა]
-op string: [nic-name] ["გაიარო"]
-op string: [last-name] [საერთაშორისო]
-op content: [department] [123]
-op content: [percent-time] [90]
-op content: [columns] [29]
-op attr: [full-time] [honest & for true]
-op string: [benefits] [full]
-op close_instance: [employee] []
-op close_list: [employee] []
-op close_container: [employees] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [employees] [] [0x200010]
+op open_list: [test] [] [0]
+op open_instance: [test] [] [0x200010]
+op string: [filename] [(null)] [0x88]
+op close_instance: [test] [] [0]
+op close_list: [test] [] [0]
+op string: [v1] [γιγνώσκειν] [0]
+op string: [v2] [ὦ ἄνδρες ᾿Αθηναῖοι] [0]
+op content: [columns] [28] [0]
+op content: [columns] [2] [0]
+op string: [v1] [ახლავე გაიაროთ რეგისტრაცია] [0]
+op string: [v2] [Unicode-ის მეათე საერთაშორისო] [0]
+op content: [columns] [55] [0]
+op content: [columns] [0] [0]
+op open_list: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Jim] [0]
+op string: [nic-name] ["რეგტ"] [0]
+op string: [last-name] [გთხოვთ ახ] [0]
+op content: [department] [431] [0]
+op content: [percent-time] [90] [0]
+op content: [columns] [23] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Terry] [0]
+op string: [nic-name] ["<one"] [0]
+op string: [last-name] [Οὐχὶ ταὐτὰ παρίσταταί μοι Jones] [0]
+op content: [department] [660] [0]
+op content: [percent-time] [90] [0]
+op content: [columns] [47] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Leslie] [0]
+op string: [nic-name] ["Les"] [0]
+op string: [last-name] [Patterson] [0]
+op content: [department] [341] [0]
+op content: [percent-time] [60] [0]
+op content: [columns] [25] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [Ashley] [0]
+op string: [nic-name] ["Ash"] [0]
+op string: [last-name] [Meter & Smith] [0]
+op content: [department] [1440] [0]
+op content: [percent-time] [40] [0]
+op content: [columns] [30] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [0123456789] [0]
+op string: [nic-name] ["0123456789"] [0]
+op string: [last-name] [012345678901234567890] [0]
+op content: [department] [1440] [0]
+op content: [percent-time] [40] [0]
+op content: [columns] [49] [0]
+op close_instance: [employee] [] [0]
+op open_instance: [employee] [] [0x200010]
+op string: [first-name] [ახლა] [0]
+op string: [nic-name] ["გაიარო"] [0]
+op string: [last-name] [საერთაშორისო] [0]
+op content: [department] [123] [0]
+op content: [percent-time] [90] [0]
+op content: [columns] [29] [0]
+op attr: [full-time] [honest & for true] [0]
+op string: [benefits] [full] [0x8]
+op close_instance: [employee] [] [0]
+op close_list: [employee] [] [0]
+op close_container: [employees] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_08.E.out b/contrib/libxo/tests/core/saved/test_08.E.out
index c00f4b8..389a4bd 100644
--- a/contrib/libxo/tests/core/saved/test_08.E.out
+++ b/contrib/libxo/tests/core/saved/test_08.E.out
@@ -1,186 +1,186 @@
-op create: [] []
-op open_container: [top] []
-op open_container: [data] []
-op open_container: [contents] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [name] [gum]
-op content: [count] [1412]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [rope]
-op content: [count] [85]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [ladder]
-op content: [count] [0]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [bolt]
-op content: [count] [4123]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [water]
-op content: [count] [17]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [contents] []
-op close_container: [data] []
-op open_container: [data2] []
-op open_container: [contents] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [name] [gum]
-op content: [count] [1412]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [rope]
-op content: [count] [85]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [ladder]
-op content: [count] [0]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [bolt]
-op content: [count] [4123]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [water]
-op content: [count] [17]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [contents] []
-op close_container: [data2] []
-op open_container: [data3] []
-op open_container: [contents] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [name] [gum]
-op content: [count] [1412]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [rope]
-op content: [count] [85]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [ladder]
-op content: [count] [0]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [bolt]
-op content: [count] [4123]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [water]
-op content: [count] [17]
-op string: [test] [one]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [contents] []
-op close_container: [data3] []
-op open_container: [data4] []
-op open_container: [contents] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [name] [gum]
-op content: [count] [1412]
-op open_list: [sub] []
-op open_instance: [sub] []
-op content: [name] [0]
-op content: [next] [1]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [1]
-op content: [next] [2]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [2]
-op content: [next] [3]
-op close_instance: [sub] []
-op close_list: [sub] []
-op content: [last] [3]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [rope]
-op content: [count] [85]
-op open_list: [sub] []
-op open_instance: [sub] []
-op content: [name] [0]
-op content: [next] [1]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [1]
-op content: [next] [2]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [2]
-op content: [next] [3]
-op close_instance: [sub] []
-op close_list: [sub] []
-op content: [last] [3]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [ladder]
-op content: [count] [0]
-op open_list: [sub] []
-op open_instance: [sub] []
-op content: [name] [0]
-op content: [next] [1]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [1]
-op content: [next] [2]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [2]
-op content: [next] [3]
-op close_instance: [sub] []
-op close_list: [sub] []
-op content: [last] [3]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [bolt]
-op content: [count] [4123]
-op open_list: [sub] []
-op open_instance: [sub] []
-op content: [name] [0]
-op content: [next] [1]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [1]
-op content: [next] [2]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [2]
-op content: [next] [3]
-op close_instance: [sub] []
-op close_list: [sub] []
-op content: [last] [3]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [name] [water]
-op content: [count] [17]
-op open_list: [sub] []
-op open_instance: [sub] []
-op content: [name] [0]
-op content: [next] [1]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [1]
-op content: [next] [2]
-op close_instance: [sub] []
-op open_instance: [sub] []
-op content: [name] [2]
-op content: [next] [3]
-op close_instance: [sub] []
-op close_list: [sub] []
-op content: [last] [3]
-op string: [test] [one]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [contents] []
-op close_container: [data4] []
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [top] [] [0x810]
+op open_container: [data] [] [0x810]
+op open_container: [contents] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [gum] [0x80]
+op content: [count] [1412] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [rope] [0x80]
+op content: [count] [85] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [ladder] [0x80]
+op content: [count] [0] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [bolt] [0x80]
+op content: [count] [4123] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [water] [0x80]
+op content: [count] [17] [0x20]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [contents] [] [0]
+op close_container: [data] [] [0]
+op open_container: [data2] [] [0x810]
+op open_container: [contents] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [gum] [0x80]
+op content: [count] [1412] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [rope] [0x80]
+op content: [count] [85] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [ladder] [0x80]
+op content: [count] [0] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [bolt] [0x80]
+op content: [count] [4123] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [water] [0x80]
+op content: [count] [17] [0x20]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [contents] [] [0]
+op close_container: [data2] [] [0]
+op open_container: [data3] [] [0x810]
+op open_container: [contents] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [gum] [0x80]
+op content: [count] [1412] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [rope] [0x80]
+op content: [count] [85] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [ladder] [0x80]
+op content: [count] [0] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [bolt] [0x80]
+op content: [count] [4123] [0x20]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [water] [0x80]
+op content: [count] [17] [0x20]
+op string: [test] [one] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [contents] [] [0]
+op close_container: [data3] [] [0]
+op open_container: [data4] [] [0x810]
+op open_container: [contents] [] [0x810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [gum] [0x80]
+op content: [count] [1412] [0x20]
+op open_list: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [0] [0]
+op content: [next] [1] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [1] [0]
+op content: [next] [2] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [2] [0]
+op content: [next] [3] [0]
+op close_instance: [sub] [] [0]
+op close_list: [sub] [] [0]
+op content: [last] [3] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [rope] [0x80]
+op content: [count] [85] [0x20]
+op open_list: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [0] [0]
+op content: [next] [1] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [1] [0]
+op content: [next] [2] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [2] [0]
+op content: [next] [3] [0]
+op close_instance: [sub] [] [0]
+op close_list: [sub] [] [0]
+op content: [last] [3] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [ladder] [0x80]
+op content: [count] [0] [0x20]
+op open_list: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [0] [0]
+op content: [next] [1] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [1] [0]
+op content: [next] [2] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [2] [0]
+op content: [next] [3] [0]
+op close_instance: [sub] [] [0]
+op close_list: [sub] [] [0]
+op content: [last] [3] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [bolt] [0x80]
+op content: [count] [4123] [0x20]
+op open_list: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [0] [0]
+op content: [next] [1] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [1] [0]
+op content: [next] [2] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [2] [0]
+op content: [next] [3] [0]
+op close_instance: [sub] [] [0]
+op close_list: [sub] [] [0]
+op content: [last] [3] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x810]
+op string: [name] [water] [0x80]
+op content: [count] [17] [0x20]
+op open_list: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [0] [0]
+op content: [next] [1] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [1] [0]
+op content: [next] [2] [0]
+op close_instance: [sub] [] [0]
+op open_instance: [sub] [] [0x810]
+op content: [name] [2] [0]
+op content: [next] [3] [0]
+op close_instance: [sub] [] [0]
+op close_list: [sub] [] [0]
+op content: [last] [3] [0]
+op string: [test] [one] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [contents] [] [0]
+op close_container: [data4] [] [0]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_09.E.out b/contrib/libxo/tests/core/saved/test_09.E.out
index bb808d5..abc69cf 100644
--- a/contrib/libxo/tests/core/saved/test_09.E.out
+++ b/contrib/libxo/tests/core/saved/test_09.E.out
@@ -1,40 +1,40 @@
-op create: [] []
-op open_container: [top] []
-op open_container: [data] []
-op open_container: [contents] []
-op open_leaf_list: [name] []
-op string: [name] [gum]
-op string: [name] [rope]
-op string: [name] [ladder]
-op string: [name] [bolt]
-op string: [name] [water]
-op close_leaf_list: [name] []
-op close_container: [contents] []
-op open_container: [contents] []
-op open_leaf_list: [item] []
-op string: [item] [gum]
-op string: [item] [rope]
-op string: [item] [ladder]
-op string: [item] [bolt]
-op string: [item] [water]
-op close_leaf_list: [item] []
-op close_container: [contents] []
-op open_container: [contents] []
-op open_list: [item] []
-op string: [item] [gum]
-op string: [item] [rope]
-op string: [item] [ladder]
-op string: [item] [bolt]
-op string: [item] [water]
-op close_list: [item] []
-op string: [total] [six]
-op string: [one] [one]
-op open_leaf_list: [two] []
-op string: [two] [two]
-op close_leaf_list: [two] []
-op string: [three] [three]
-op close_container: [contents] []
-op close_container: [data] []
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [top] [] [0x810]
+op open_container: [data] [] [0x810]
+op open_container: [contents] [] [0x810]
+op open_leaf_list: [name] [] [0]
+op string: [name] [gum] [0x2000]
+op string: [name] [rope] [0x2000]
+op string: [name] [ladder] [0x2000]
+op string: [name] [bolt] [0x2000]
+op string: [name] [water] [0x2000]
+op close_leaf_list: [name] [] [0]
+op close_container: [contents] [] [0]
+op open_container: [contents] [] [0x810]
+op open_leaf_list: [item] [] [0]
+op string: [item] [gum] [0x2000]
+op string: [item] [rope] [0x2000]
+op string: [item] [ladder] [0x2000]
+op string: [item] [bolt] [0x2000]
+op string: [item] [water] [0x2000]
+op close_leaf_list: [item] [] [0]
+op close_container: [contents] [] [0]
+op open_container: [contents] [] [0x810]
+op open_list: [item] [] [0]
+op string: [item] [gum] [0x2000]
+op string: [item] [rope] [0x2000]
+op string: [item] [ladder] [0x2000]
+op string: [item] [bolt] [0x2000]
+op string: [item] [water] [0x2000]
+op close_list: [item] [] [0]
+op string: [total] [six] [0]
+op string: [one] [one] [0]
+op open_leaf_list: [two] [] [0]
+op string: [two] [two] [0x2000]
+op close_leaf_list: [two] [] [0]
+op string: [three] [three] [0]
+op close_container: [contents] [] [0]
+op close_container: [data] [] [0]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_10.E.out b/contrib/libxo/tests/core/saved/test_10.E.out
index 4f21cda..dc50d92 100644
--- a/contrib/libxo/tests/core/saved/test_10.E.out
+++ b/contrib/libxo/tests/core/saved/test_10.E.out
@@ -1,126 +1,126 @@
-op create: [] []
-op version: [] [3.1.4]
-op open_container: [top] []
-op attr: [test] [value]
-op open_container: [data] []
-op open_list: [item] []
-op attr: [test2] [value2]
-op close_list: [item] []
-op string: [data] [bold]
-op string: [data] [bold-ul]
-op string: [data] [triple]
-op string: [data] [inv-ul]
-op string: [data] [underline]
-op string: [data] [plain]
-op open_list: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [GRO-000-415]
-op string: [name] [gum]
-op content: [sold] [1412]
-op content: [in-stock] [54]
-op content: [on-order] [10]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-212]
-op string: [name] [rope]
-op content: [sold] [85]
-op content: [in-stock] [4]
-op content: [on-order] [2]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-517]
-op string: [name] [ladder]
-op content: [sold] [0]
-op content: [in-stock] [2]
-op content: [on-order] [1]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [HRD-000-632]
-op string: [name] [bolt]
-op content: [sold] [4123]
-op content: [in-stock] [144]
-op content: [on-order] [42]
-op close_instance: [item] []
-op open_instance: [item] []
-op attr: [test3] [value3]
-op string: [sku] [GRO-000-2331]
-op string: [name] [water]
-op content: [sold] [17]
-op content: [in-stock] [14]
-op content: [on-order] [2]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data] []
-op open_container: [data] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-415]
-op string: [name] [gum]
-op content: [sold] [1412.0]
-op content: [in-stock] [54]
-op content: [on-order] [10]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-212]
-op string: [name] [rope]
-op content: [sold] [85.0]
-op content: [in-stock] [4]
-op content: [on-order] [2]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-517]
-op string: [name] [ladder]
-op content: [sold] [0]
-op content: [in-stock] [2]
-op content: [on-order] [1]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [HRD-000-632]
-op string: [name] [bolt]
-op content: [sold] [4123.0]
-op content: [in-stock] [144]
-op content: [on-order] [42]
-op close_instance: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-2331]
-op string: [name] [water]
-op content: [sold] [17.0]
-op content: [in-stock] [14]
-op content: [on-order] [2]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data] []
-op open_container: [data] []
-op open_list: [item] []
-op open_instance: [item] []
-op string: [sku] [GRO-000-533]
-op string: [name] [fish]
-op content: [sold] [1321.0]
-op content: [in-stock] [45]
-op content: [on-order] [1]
-op close_instance: [item] []
-op close_list: [item] []
-op close_container: [data] []
-op open_container: [data] []
-op open_list: [item] []
-op attr: [test4] [value4]
-op string: [item] [gum]
-op attr: [test4] [value4]
-op string: [item] [rope]
-op attr: [test4] [value4]
-op string: [item] [ladder]
-op attr: [test4] [value4]
-op string: [item] [bolt]
-op attr: [test4] [value4]
-op string: [item] [water]
-op close_list: [item] []
-op close_container: [data] []
-op content: [cost] [425]
-op content: [cost] [455]
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op version: [] [3.1.4] [0]
+op open_container: [top] [] [0x4000810]
+op attr: [test] [value] [0]
+op open_container: [data] [] [0x4000810]
+op open_list: [item] [] [0]
+op attr: [test2] [value2] [0]
+op close_list: [item] [] [0]
+op string: [data] [bold] [0]
+op string: [data] [bold-ul] [0]
+op string: [data] [triple] [0]
+op string: [data] [inv-ul] [0]
+op string: [data] [underline] [0]
+op string: [data] [plain] [0]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op attr: [test3] [value3] [0]
+op string: [sku] [GRO-000-415] [0x98]
+op string: [name] [gum] [0x80]
+op content: [sold] [1412] [0x20]
+op content: [in-stock] [54] [0]
+op content: [on-order] [10] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-212] [0x98]
+op string: [name] [rope] [0x80]
+op content: [sold] [85] [0x20]
+op content: [in-stock] [4] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-517] [0x98]
+op string: [name] [ladder] [0x80]
+op content: [sold] [0] [0x20]
+op content: [in-stock] [2] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op attr: [test3] [value3] [0]
+op string: [sku] [HRD-000-632] [0x98]
+op string: [name] [bolt] [0x80]
+op content: [sold] [4123] [0x20]
+op content: [in-stock] [144] [0]
+op content: [on-order] [42] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op attr: [test3] [value3] [0]
+op string: [sku] [GRO-000-2331] [0x98]
+op string: [name] [water] [0x80]
+op content: [sold] [17] [0x20]
+op content: [in-stock] [14] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data] [] [0]
+op open_container: [data] [] [0x4000810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [GRO-000-415] [0x98]
+op string: [name] [gum] [0x80]
+op content: [sold] [1412.0] [0x20]
+op content: [in-stock] [54] [0]
+op content: [on-order] [10] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [HRD-000-212] [0x98]
+op string: [name] [rope] [0x80]
+op content: [sold] [85.0] [0x20]
+op content: [in-stock] [4] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [HRD-000-517] [0x98]
+op string: [name] [ladder] [0x80]
+op content: [sold] [0] [0x20]
+op content: [in-stock] [2] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [HRD-000-632] [0x98]
+op string: [name] [bolt] [0x80]
+op content: [sold] [4123.0] [0x20]
+op content: [in-stock] [144] [0]
+op content: [on-order] [42] [0]
+op close_instance: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [GRO-000-2331] [0x98]
+op string: [name] [water] [0x80]
+op content: [sold] [17.0] [0x20]
+op content: [in-stock] [14] [0]
+op content: [on-order] [2] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data] [] [0]
+op open_container: [data] [] [0x4000810]
+op open_list: [item] [] [0]
+op open_instance: [item] [] [0x4000810]
+op string: [sku] [GRO-000-533] [0x98]
+op string: [name] [fish] [0x80]
+op content: [sold] [1321.0] [0x20]
+op content: [in-stock] [45] [0]
+op content: [on-order] [1] [0]
+op close_instance: [item] [] [0]
+op close_list: [item] [] [0]
+op close_container: [data] [] [0]
+op open_container: [data] [] [0x4000810]
+op open_list: [item] [] [0]
+op attr: [test4] [value4] [0]
+op string: [item] [gum] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [rope] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [ladder] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [bolt] [0x2000]
+op attr: [test4] [value4] [0]
+op string: [item] [water] [0x2000]
+op close_list: [item] [] [0]
+op close_container: [data] [] [0]
+op content: [cost] [425] [0]
+op content: [cost] [455] [0]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_10.X.out b/contrib/libxo/tests/core/saved/test_10.X.out
index 49c6dd8..c932156 100644
--- a/contrib/libxo/tests/core/saved/test_10.X.out
+++ b/contrib/libxo/tests/core/saved/test_10.X.out
@@ -1 +1 @@
-<top __version="3.1.4"><data test="value"><data test2="value2">bold</data><data>bold-ul</data><data>triple</data><data>inv-ul</data><data>underline</data><data>plain</data><item><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data><data><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data><cost>425</cost><cost>455</cost></top> \ No newline at end of file
+<top version="3.1.4"><data test="value"><data test2="value2">bold</data><data>bold-ul</data><data>triple</data><data>inv-ul</data><data>underline</data><data>plain</data><item><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data><data><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data><cost>425</cost><cost>455</cost></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_10.XP.out b/contrib/libxo/tests/core/saved/test_10.XP.out
index 33c88d9..ec1aa93 100644
--- a/contrib/libxo/tests/core/saved/test_10.XP.out
+++ b/contrib/libxo/tests/core/saved/test_10.XP.out
@@ -1,4 +1,4 @@
-<top __version="3.1.4">
+<top version="3.1.4">
<data test="value">
<data test2="value2">bold</data>
<data>bold-ul</data>
diff --git a/contrib/libxo/tests/core/saved/test_11.E.out b/contrib/libxo/tests/core/saved/test_11.E.out
index 9fd70fa..76b8f21 100644
--- a/contrib/libxo/tests/core/saved/test_11.E.out
+++ b/contrib/libxo/tests/core/saved/test_11.E.out
@@ -1,26 +1,22 @@
-op create: [] []
-op version: [] [3.1.4]
-op open_container: [top] []
-op create: [] []
+op create: [] [] [0]
+op version: [] [3.1.4] [0]
+op open_container: [top] [] [0x10]
{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
{{test-program: }}
{{The snake is loose}}
-op create: [] []
{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
{{test-program: }}
{{My snake ate your hamster}}
-op create: [] []
{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
{{test-program: }}
{{1 owl said "e=m\c[2]"}}
-op create: [] []
{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
{{test-program: }}
{{An application 1011 log entry}}
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_11.HIPx.out b/contrib/libxo/tests/core/saved/test_11.HIPx.out
index 8b726f4..0786c34 100644
--- a/contrib/libxo/tests/core/saved/test_11.HIPx.out
+++ b/contrib/libxo/tests/core/saved/test_11.HIPx.out
@@ -1,16 +1,16 @@
-{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="" state=""] The snake is loose}}
+{{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}}
{{test-program: }}
{{The snake is loose}}
-{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="" pet=""] My snake ate your hamster}}
+{{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}}
{{test-program: }}
{{My snake ate your hamster}}
-{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="" animal="" quote=""] 1 owl said "e=m\c[2]"}}
+{{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}}
{{test-program: }}
{{1 owl said "e=m\c[2]"}}
-{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="" event-source="" event-id=""] An application 1011 log entry}}
+{{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}}
{{test-program: }}
{{An application 1011 log entry}}
diff --git a/contrib/libxo/tests/core/saved/test_11.X.out b/contrib/libxo/tests/core/saved/test_11.X.out
index bb73a42..5c279b7 100644
--- a/contrib/libxo/tests/core/saved/test_11.X.out
+++ b/contrib/libxo/tests/core/saved/test_11.X.out
@@ -14,4 +14,4 @@
{{test-program: }}
{{An application 1011 log entry}}
-<top __version="3.1.4"></top> \ No newline at end of file
+<top version="3.1.4"></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_11.XP.out b/contrib/libxo/tests/core/saved/test_11.XP.out
index 46b5dd0..0276561 100644
--- a/contrib/libxo/tests/core/saved/test_11.XP.out
+++ b/contrib/libxo/tests/core/saved/test_11.XP.out
@@ -14,5 +14,5 @@
{{test-program: }}
{{An application 1011 log entry}}
-<top __version="3.1.4">
+<top version="3.1.4">
</top>
diff --git a/contrib/libxo/tests/core/saved/test_12.E.out b/contrib/libxo/tests/core/saved/test_12.E.out
index 1c899a1..a831f5c 100644
--- a/contrib/libxo/tests/core/saved/test_12.E.out
+++ b/contrib/libxo/tests/core/saved/test_12.E.out
@@ -1,89 +1,91 @@
-op create: [] []
-op open_container: [top] []
-op open_container: [data] []
-op open_list: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op open_instance: [thing] []
-op string: [name] [thing]
-op string: [color] [green]
-op content: [time] [2:15]
-op string: [hand] [left]
-op string: [color] [blue]
-op content: [time] [3:45]
-op close_instance: [thing] []
-op close_list: [thing] []
-op close_container: [data] []
-op close_container: [top] []
-op finish: [] []
-op flush: [] []
+op create: [] [] [0]
+op open_container: [top] [] [0x4040010]
+op open_container: [data] [] [0x4040010]
+op string: [animal] [fish] [0]
+op string: [animal] [fish] [0]
+op open_list: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op open_instance: [thing] [] [0x4040010]
+op string: [name] [thing] [0x80]
+op string: [color] [green] [0]
+op content: [time] [2:15] [0]
+op string: [hand] [left] [0]
+op string: [color] [blue] [0]
+op content: [time] [3:45] [0]
+op close_instance: [thing] [] [0]
+op close_list: [thing] [] [0]
+op close_container: [data] [] [0]
+op close_container: [top] [] [0]
+op finish: [] [] [0]
+op flush: [] [] [0]
diff --git a/contrib/libxo/tests/core/saved/test_12.H.out b/contrib/libxo/tests/core/saved/test_12.H.out
index 5cbac17..2bd9a44 100644
--- a/contrib/libxo/tests/core/saved/test_12.H.out
+++ b/contrib/libxo/tests/core/saved/test_12.H.out
@@ -1 +1 @@
-<div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data" data-tag="name">thing</div><div class="text"> is </div><div class="data" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data" data-tag="hand">left</div><div class="text"> hand is </div><div class="data" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div> \ No newline at end of file
+<div class="line"><div class="text color-fg-red color-bg-green">Merry XMas!!</div></div><div class="line"><div class="text">One </div><div class="data color-fg-yellow color-bg-blue" data-tag="animal">fish</div><div class="text">, Two </div><div class="data color-fg-green color-bg-yellow" data-tag="animal">fish</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div><div class="line"><div class="text">The </div><div class="data color-fg-red" data-tag="name">thing</div><div class="text"> is </div><div class="data color-fg-green" data-tag="color">green</div><div class="text"> til </div><div class="data" data-tag="time">02:15</div></div><div class="line"><div class="text">My </div><div class="data color-fg-red" data-tag="hand">left</div><div class="text"> hand is </div><div class="data color-fg-blue" data-tag="color">blue</div><div class="text"> til </div><div class="data" data-tag="time">03:45</div></div> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_12.HIPx.out b/contrib/libxo/tests/core/saved/test_12.HIPx.out
index 9b5fea1..dab1975 100644
--- a/contrib/libxo/tests/core/saved/test_12.HIPx.out
+++ b/contrib/libxo/tests/core/saved/test_12.HIPx.out
@@ -1,160 +1,169 @@
<div class="line">
+ <div class="text color-fg-red color-bg-green">Merry XMas!!</div>
+</div>
+<div class="line">
+ <div class="text">One </div>
+ <div class="data color-fg-yellow color-bg-blue" data-tag="animal" data-xpath="/top/data/animal">fish</div>
+ <div class="text">, Two </div>
+ <div class="data color-fg-green color-bg-yellow" data-tag="animal" data-xpath="/top/data/animal">fish</div>
+</div>
+<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
+ <div class="data color-fg-red" data-tag="name" data-xpath="/top/data/thing/name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
+ <div class="data color-fg-green" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
+ <div class="data color-fg-red" data-tag="hand" data-xpath="/top/data/thing[name = 'thing']/hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
+ <div class="data color-fg-blue" data-tag="color" data-xpath="/top/data/thing[name = 'thing']/color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time" data-xpath="/top/data/thing[name = 'thing']/time">03:45</div>
</div>
diff --git a/contrib/libxo/tests/core/saved/test_12.HP.out b/contrib/libxo/tests/core/saved/test_12.HP.out
index 1e0e923..54e3dfb 100644
--- a/contrib/libxo/tests/core/saved/test_12.HP.out
+++ b/contrib/libxo/tests/core/saved/test_12.HP.out
@@ -1,160 +1,169 @@
<div class="line">
+ <div class="text color-fg-red color-bg-green">Merry XMas!!</div>
+</div>
+<div class="line">
+ <div class="text">One </div>
+ <div class="data color-fg-yellow color-bg-blue" data-tag="animal">fish</div>
+ <div class="text">, Two </div>
+ <div class="data color-fg-green color-bg-yellow" data-tag="animal">fish</div>
+</div>
+<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
<div class="line">
<div class="text">The </div>
- <div class="data" data-tag="name">thing</div>
+ <div class="data color-fg-red" data-tag="name">thing</div>
<div class="text"> is </div>
- <div class="data" data-tag="color">green</div>
+ <div class="data color-fg-green" data-tag="color">green</div>
<div class="text"> til </div>
<div class="data" data-tag="time">02:15</div>
</div>
<div class="line">
<div class="text">My </div>
- <div class="data" data-tag="hand">left</div>
+ <div class="data color-fg-red" data-tag="hand">left</div>
<div class="text"> hand is </div>
- <div class="data" data-tag="color">blue</div>
+ <div class="data color-fg-blue" data-tag="color">blue</div>
<div class="text"> til </div>
<div class="data" data-tag="time">03:45</div>
</div>
diff --git a/contrib/libxo/tests/core/saved/test_12.J.out b/contrib/libxo/tests/core/saved/test_12.J.out
index 118bb76..7cfee6d 100644
--- a/contrib/libxo/tests/core/saved/test_12.J.out
+++ b/contrib/libxo/tests/core/saved/test_12.J.out
@@ -1,2 +1,2 @@
-{"top": {"data": {"thing": [{"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}]}}
+{"top": {"data": {"animal":"fish","animal":"fish", "thing": [{"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}, {"name":"thing","color":"green","time":2:15,"hand":"left","color":"blue","time":3:45}]}}
}
diff --git a/contrib/libxo/tests/core/saved/test_12.JP.out b/contrib/libxo/tests/core/saved/test_12.JP.out
index 3e15e0d..f76ede1 100644
--- a/contrib/libxo/tests/core/saved/test_12.JP.out
+++ b/contrib/libxo/tests/core/saved/test_12.JP.out
@@ -1,6 +1,8 @@
{
"top": {
"data": {
+ "animal": "fish",
+ "animal": "fish",
"thing": [
{
"name": "thing",
diff --git a/contrib/libxo/tests/core/saved/test_12.T.out b/contrib/libxo/tests/core/saved/test_12.T.out
index 6f777c7..83a96a1 100644
--- a/contrib/libxo/tests/core/saved/test_12.T.out
+++ b/contrib/libxo/tests/core/saved/test_12.T.out
@@ -1,20 +1,22 @@
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
-The thing is green til 02:15
-My left hand is blue til 03:45
+Merry XMas!!
+One fish, Two fish
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
+The thing is green til 02:15
+My left hand is blue til 03:45
diff --git a/contrib/libxo/tests/core/saved/test_12.X.out b/contrib/libxo/tests/core/saved/test_12.X.out
index ed2d8e4..28a30f7 100644
--- a/contrib/libxo/tests/core/saved/test_12.X.out
+++ b/contrib/libxo/tests/core/saved/test_12.X.out
@@ -1 +1 @@
-<top><data><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing></data></top> \ No newline at end of file
+<top><data><animal>fish</animal><animal>fish</animal><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing><thing><name>thing</name><color>green</color><time>2:15</time><hand>left</hand><color>blue</color><time>3:45</time></thing></data></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_12.XP.out b/contrib/libxo/tests/core/saved/test_12.XP.out
index 73eec4c..37ef1bd 100644
--- a/contrib/libxo/tests/core/saved/test_12.XP.out
+++ b/contrib/libxo/tests/core/saved/test_12.XP.out
@@ -1,5 +1,7 @@
<top>
<data>
+ <animal>fish</animal>
+ <animal>fish</animal>
<thing>
<name>thing</name>
<color>green</color>
diff --git a/contrib/libxo/tests/core/test_01.c b/contrib/libxo/tests/core/test_01.c
index 05d778a..15948a3 100644
--- a/contrib/libxo/tests/core/test_01.c
+++ b/contrib/libxo/tests/core/test_01.c
@@ -9,6 +9,7 @@
*/
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>
@@ -79,6 +80,15 @@ main (int argc, char **argv)
xo_open_container_h(NULL, "top");
+ xo_emit("anchor {[:/%d}{:address/%p}..{:port/%u}{]:}\n", 18, NULL, 1);
+ xo_emit("anchor {[:18}{:address/%p}..{:port/%u}{]:}\n", NULL, 1);
+ xo_emit("anchor {[:/18}{:address/%p}..{:port/%u}{]:}\n", NULL, 1);
+
+ xo_emit("df {:used-percent/%5.0f}{U:%%}\n", (double) 12);
+
+ xo_emit("{e:kve_start/%#jx}", (uintmax_t) 0xdeadbeef);
+ xo_emit("{e:kve_end/%#jx}", (uintmax_t) 0xcabb1e);
+
xo_emit("testing argument modifier {a:}.{a:}...\n",
"host", "my-box", "domain", "example.com");
@@ -186,6 +196,8 @@ main (int argc, char **argv)
"mode", "octal", "links",
"user", "group", "extra1", "extra2", "extra3");
+ xo_emit("{e:pre/%s}{t:links/%-*u}{t:post/%-*s}\n", "that", 8, 3, 8, "this");
+
xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} "
"{t:user/%-*s} {t:group/%-*s} \n",
"/some/file", (int) 0640, 8, 1,
diff --git a/contrib/libxo/tests/core/test_12.c b/contrib/libxo/tests/core/test_12.c
index 17d26a6..f6021e7 100644
--- a/contrib/libxo/tests/core/test_12.c
+++ b/contrib/libxo/tests/core/test_12.c
@@ -22,6 +22,7 @@ main (int argc, char **argv)
int i, count = 10;
int mon = 0;
xo_emit_flags_t flags = XOEF_RETAIN;
+ int opt_color = 1;
argc = xo_parse_args(argc, argv);
if (argc < 0)
@@ -36,6 +37,8 @@ main (int argc, char **argv)
xo_set_style(NULL, XO_STYLE_TEXT);
else if (strcmp(argv[argc], "html") == 0)
xo_set_style(NULL, XO_STYLE_HTML);
+ else if (strcmp(argv[argc], "no-color") == 0)
+ opt_color = 0;
else if (strcmp(argv[argc], "pretty") == 0)
xo_set_flags(NULL, XOF_PRETTY);
else if (strcmp(argv[argc], "xpath") == 0)
@@ -51,11 +54,19 @@ main (int argc, char **argv)
}
xo_set_flags(NULL, XOF_UNITS); /* Always test w/ this */
+ if (opt_color)
+ xo_set_flags(NULL, XOF_COLOR); /* Force color output */
xo_set_file(stdout);
xo_open_container("top");
xo_open_container("data");
+ xo_emit("{C:fg-red,bg-green}Merry XMas!!{C:}\n");
+
+ xo_emit("One {C:fg-yellow,bg-blue}{:animal}{C:}, "
+ "Two {C:fg-green,bg-yellow}{:animal}{C:}\n",
+ "fish", "fish");
+
const char *fmt1 = "The {C:fg-red}{k:name}{C:reset} is "
"{C:/fg-%s}{:color}{C:reset} til {:time/%02d:%02d}\n";
const char *fmt2 = "My {C:fg-red}{:hand}{C:reset} hand is "
OpenPOWER on IntegriCloud