summaryrefslogtreecommitdiffstats
path: root/contrib/libxo/tests/core
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2015-01-19 02:22:03 +0000
committermarcel <marcel@FreeBSD.org>2015-01-19 02:22:03 +0000
commitea59bea59330a848548ce834189e97959e8ebae4 (patch)
tree8db7c468a655beb61f455f2901342b8b7884e50d /contrib/libxo/tests/core
parentcb3a27ad28c1f0dde8ed5051245175152b16ce26 (diff)
downloadFreeBSD-src-ea59bea59330a848548ce834189e97959e8ebae4.zip
FreeBSD-src-ea59bea59330a848548ce834189e97959e8ebae4.tar.gz
Upgrade libxo to 0.2.0.
Obtained from: https://github.com/Juniper/libxo Requested by: Phil Shafer <phil@juniper.net> Revisions 276253 & 276273 were incorporated into 0.2.0. Revision 276260 has been merged-in.
Diffstat (limited to 'contrib/libxo/tests/core')
-rw-r--r--contrib/libxo/tests/core/Makefile.am6
-rw-r--r--contrib/libxo/tests/core/saved/test_01.H.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_01.HIPx.out58
-rw-r--r--contrib/libxo/tests/core/saved/test_01.HP.out58
-rw-r--r--contrib/libxo/tests/core/saved/test_01.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_01.JP.out9
-rw-r--r--contrib/libxo/tests/core/saved/test_01.T.out8
-rw-r--r--contrib/libxo/tests/core/saved/test_01.X.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_01.XP.out23
-rw-r--r--contrib/libxo/tests/core/saved/test_02.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_02.JP.out5
-rw-r--r--contrib/libxo/tests/core/saved/test_07.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_07.JP.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_08.H.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.H.out1
-rw-r--r--contrib/libxo/tests/core/saved/test_08.HIPx.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.HIPx.out264
-rw-r--r--contrib/libxo/tests/core/saved/test_08.HP.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.HP.out264
-rw-r--r--contrib/libxo/tests/core/saved/test_08.J.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_08.JP.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.JP.out185
-rw-r--r--contrib/libxo/tests/core/saved/test_08.T.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.T.out52
-rw-r--r--contrib/libxo/tests/core/saved/test_08.X.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.X.out1
-rw-r--r--contrib/libxo/tests/core/saved/test_08.XP.err18
-rw-r--r--contrib/libxo/tests/core/saved/test_08.XP.out165
-rw-r--r--contrib/libxo/tests/core/saved/test_09.H.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.H.out1
-rw-r--r--contrib/libxo/tests/core/saved/test_09.HIPx.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.HIPx.out93
-rw-r--r--contrib/libxo/tests/core/saved/test_09.HP.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.HP.out93
-rw-r--r--contrib/libxo/tests/core/saved/test_09.J.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.J.out2
-rw-r--r--contrib/libxo/tests/core/saved/test_09.JP.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.JP.out27
-rw-r--r--contrib/libxo/tests/core/saved/test_09.T.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.T.out25
-rw-r--r--contrib/libxo/tests/core/saved/test_09.X.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.X.out1
-rw-r--r--contrib/libxo/tests/core/saved/test_09.XP.err0
-rw-r--r--contrib/libxo/tests/core/saved/test_09.XP.out29
-rw-r--r--contrib/libxo/tests/core/test_01.c28
-rw-r--r--contrib/libxo/tests/core/test_07.c3
-rw-r--r--contrib/libxo/tests/core/test_08.c157
-rw-r--r--contrib/libxo/tests/core/test_09.c114
49 files changed, 1813 insertions, 17 deletions
diff --git a/contrib/libxo/tests/core/Makefile.am b/contrib/libxo/tests/core/Makefile.am
index a5470f3..f145d18 100644
--- a/contrib/libxo/tests/core/Makefile.am
+++ b/contrib/libxo/tests/core/Makefile.am
@@ -18,7 +18,9 @@ test_03.c \
test_04.c \
test_05.c \
test_06.c \
-test_07.c
+test_07.c \
+test_08.c \
+test_09.c
test_01_test_SOURCES = test_01.c
test_02_test_SOURCES = test_02.c
@@ -27,6 +29,8 @@ test_04_test_SOURCES = test_04.c
test_05_test_SOURCES = test_05.c
test_06_test_SOURCES = test_06.c
test_07_test_SOURCES = test_07.c
+test_08_test_SOURCES = test_08.c
+test_09_test_SOURCES = test_09.c
# TEST_CASES := $(shell cd ${srcdir} ; echo *.c )
diff --git a/contrib/libxo/tests/core/saved/test_01.H.out b/contrib/libxo/tests/core/saved/test_01.H.out
index e61eecc..4d4f2f1 100644
--- a/contrib/libxo/tests/core/saved/test_01.H.out
+++ b/contrib/libxo/tests/core/saved/test_01.H.out
@@ -1 +1 @@
-<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> \ No newline at end of file
+<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> \ 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 c38eb04..2bafff9 100644
--- a/contrib/libxo/tests/core/saved/test_01.HIPx.out
+++ b/contrib/libxo/tests/core/saved/test_01.HIPx.out
@@ -236,3 +236,61 @@
<div class="text">: </div>
<div class="data" data-tag="sku" data-xpath="/top/data/item/sku" data-type="string" data-help="Stock Keeping Unit" 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" data-xpath="/top/data/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" data-xpath="/top/data/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" data-xpath="/top/data/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" data-xpath="/top/data/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" data-xpath="/top/data/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" data-xpath="/top/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" data-xpath="/top/cost">455</div>
+</div>
diff --git a/contrib/libxo/tests/core/saved/test_01.HP.out b/contrib/libxo/tests/core/saved/test_01.HP.out
index a887476..a007778 100644
--- a/contrib/libxo/tests/core/saved/test_01.HP.out
+++ b/contrib/libxo/tests/core/saved/test_01.HP.out
@@ -236,3 +236,61 @@
<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>
diff --git a/contrib/libxo/tests/core/saved/test_01.J.out b/contrib/libxo/tests/core/saved/test_01.J.out
index 289a952..6fcdbd4 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": {"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}]}, "data": {"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}]}, "data": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}}
+{"top": {"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}]}, "data": {"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}]}, "data": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455}
}
diff --git a/contrib/libxo/tests/core/saved/test_01.JP.out b/contrib/libxo/tests/core/saved/test_01.JP.out
index 5675845..e1fd231 100644
--- a/contrib/libxo/tests/core/saved/test_01.JP.out
+++ b/contrib/libxo/tests/core/saved/test_01.JP.out
@@ -88,6 +88,13 @@
"on-order": 1
}
]
- }
+ },
+ "data": {
+ "item": [
+ "gum", "rope", "ladder", "bolt", "water"
+ ]
+ },
+ "cost": 425,
+ "cost": 455
}
}
diff --git a/contrib/libxo/tests/core/saved/test_01.T.out b/contrib/libxo/tests/core/saved/test_01.T.out
index c2ad7a0..c45b130 100644
--- a/contrib/libxo/tests/core/saved/test_01.T.out
+++ b/contrib/libxo/tests/core/saved/test_01.T.out
@@ -36,3 +36,11 @@ Item 'fish':
In stock: 45
On order: 1
SKU: GRO-000-533
+Item: gum
+Item: rope
+Item: ladder
+Item: bolt
+Item: water
+XXXXXXXX
+X XCost: 425
+X XCost: 455
diff --git a/contrib/libxo/tests/core/saved/test_01.X.out b/contrib/libxo/tests/core/saved/test_01.X.out
index c3e07c8..ce27192 100644
--- a/contrib/libxo/tests/core/saved/test_01.X.out
+++ b/contrib/libxo/tests/core/saved/test_01.X.out
@@ -1 +1 @@
-<top><data><item><sku 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 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 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</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</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></top> \ No newline at end of file
+<top><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><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_01.XP.out b/contrib/libxo/tests/core/saved/test_01.XP.out
index 49fc6da..e5ea3e0 100644
--- a/contrib/libxo/tests/core/saved/test_01.XP.out
+++ b/contrib/libxo/tests/core/saved/test_01.XP.out
@@ -1,35 +1,35 @@
<top>
- <data>
- <item>
- <sku key="key">GRO-000-415</sku>
+ <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 key="key">HRD-000-212</sku>
+ <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 key="key">HRD-000-517</sku>
+ <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 key="key">HRD-000-632</sku>
+ <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 key="key">GRO-000-2331</sku>
+ <sku test3="value3" key="key">GRO-000-2331</sku>
<name key="key">water</name>
<sold>17</sold>
<in-stock>14</in-stock>
@@ -82,4 +82,13 @@
<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>
diff --git a/contrib/libxo/tests/core/saved/test_02.J.out b/contrib/libxo/tests/core/saved/test_02.J.out
index 621e061..5b4502a 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": {"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,"min":15,"cur":20,"max":30,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125, "flag": ["one","two","three"],"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest","count":10,"test":4}}
+{"top": {"data": {"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,"min":15,"cur":20,"max":30,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125, "flag": ["one","two","three"],"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest","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 9479817..21b168b 100644
--- a/contrib/libxo/tests/core/saved/test_02.JP.out
+++ b/contrib/libxo/tests/core/saved/test_02.JP.out
@@ -34,7 +34,10 @@
"t3": "ten-longx",
"t4": "xtest",
"count": 10,
- "test": 4
+ "test": 4,
+ "error": {
+ "message": "Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"
+ }
}
}
}
diff --git a/contrib/libxo/tests/core/saved/test_07.J.out b/contrib/libxo/tests/core/saved/test_07.J.out
index 9285ff5..8e9efae 100644
--- a/contrib/libxo/tests/core/saved/test_07.J.out
+++ b/contrib/libxo/tests/core/saved/test_07.J.out
@@ -1,2 +1,2 @@
-{"employees": {"test": [{"filename":"(null)"}],"v1":"γιγνώσκειν","v2":"ὦ ἄνδρες ᾿Αθηναῖοι","columns":28,"columns":2,"v1":"ახლავე გაიაროთ რეგისტრაცია","v2":"Unicode-ის მეათე საერთაშორისო","columns":55, "employee": ["columns":0, {"first-name":"Jim","nic-name":"\"რეგტ\"","last-name":"გთხოვთ ახ","department":431,"percent-time":90,"columns":23,"benefits":"full"}, {"first-name":"Terry","nic-name":"\"<one\"","last-name":"Οὐχὶ ταὐτὰ παρίσταταί μοι Jones","department":660,"percent-time":90,"columns":47,"benefits":"full"}, {"first-name":"Leslie","nic-name":"\"Les\"","last-name":"Patterson","department":341,"percent-time":60,"columns":25,"benefits":"full"}, {"first-name":"Ashley","nic-name":"\"Ash\"","last-name":"Meter & Smith","department":1440,"percent-time":40,"columns":30}, {"first-name":"0123456789","nic-name":"\"0123456789\"","last-name":"012345678901234567890","department":1440,"percent-time":40,"columns":49}, {"first-name":"ახლა","nic-name":"\"გაიარო\"","last-name":"საერთაშორისო","department":123,"percent-time":90,"columns":29,"benefits":"full"}]}
+{"employees": {"test": [{"filename":"(null)"}],"v1":"γιγνώσκειν","v2":"ὦ ἄνδρες ᾿Αθηναῖοι","columns":28,"columns":2,"v1":"ახლავე გაიაროთ რეგისტრაცია","v2":"Unicode-ის მეათე საერთაშორისო","columns":55,"columns":0, "employee": [{"first-name":"Jim","nic-name":"\"რეგტ\"","last-name":"გთხოვთ ახ","department":431,"percent-time":90,"columns":23,"benefits":"full"}, {"first-name":"Terry","nic-name":"\"<one\"","last-name":"Οὐχὶ ταὐτὰ παρίσταταί μοι Jones","department":660,"percent-time":90,"columns":47,"benefits":"full"}, {"first-name":"Leslie","nic-name":"\"Les\"","last-name":"Patterson","department":341,"percent-time":60,"columns":25,"benefits":"full"}, {"first-name":"Ashley","nic-name":"\"Ash\"","last-name":"Meter & Smith","department":1440,"percent-time":40,"columns":30}, {"first-name":"0123456789","nic-name":"\"0123456789\"","last-name":"012345678901234567890","department":1440,"percent-time":40,"columns":49}, {"first-name":"ახლა","nic-name":"\"გაიარო\"","last-name":"საერთაშორისო","department":123,"percent-time":90,"columns":29,"benefits":"full"}]}
}
diff --git a/contrib/libxo/tests/core/saved/test_07.JP.out b/contrib/libxo/tests/core/saved/test_07.JP.out
index 206a146..9c969f9 100644
--- a/contrib/libxo/tests/core/saved/test_07.JP.out
+++ b/contrib/libxo/tests/core/saved/test_07.JP.out
@@ -12,8 +12,8 @@
"v1": "ახლავე გაიაროთ რეგისტრაცია",
"v2": "Unicode-ის მეათე საერთაშორისო",
"columns": 55,
+ "columns": 0,
"employee": [
- "columns": 0,
{
"first-name": "Jim",
"nic-name": "\"რეგტ\"",
diff --git a/contrib/libxo/tests/core/saved/test_08.H.err b/contrib/libxo/tests/core/saved/test_08.H.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.H.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.H.out b/contrib/libxo/tests/core/saved/test_08.H.out
new file mode 100644
index 0000000..81f12d8
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"><div class="data" data-tag="test">one</div></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum </div><div class="data" data-tag="count"> 1412</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope </div><div class="data" data-tag="count"> 85</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder </div><div class="data" data-tag="count"> 0</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt </div><div class="data" data-tag="count"> 4123</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water </div><div class="data" data-tag="count"> 17</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">0</div><div class="text"> + 1 = </div><div class="data" data-tag="next">1</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">1</div><div class="text"> + 1 = </div><div class="data" data-tag="next">2</div></div><div class="line"><div class="label">Name</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="name">2</div><div class="text"> + 1 = </div><div class="data" data-tag="next">3</div></div><div class="line"><div class="label">Last</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="last">3</div></div><div class="line"><div class="data" data-tag="test">one</div></div><div class="line"></div> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_08.HIPx.err b/contrib/libxo/tests/core/saved/test_08.HIPx.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.HIPx.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.HIPx.out b/contrib/libxo/tests/core/saved/test_08.HIPx.out
new file mode 100644
index 0000000..87bfbed
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.HIPx.out
@@ -0,0 +1,264 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test" data-xpath="/top/data/m1/contents/item[name = 'water']/test">one</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">gum </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'gum']/count"> 1412</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'gum']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data/m1/contents/item[name = 'gum']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">rope </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'rope']/count"> 85</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'rope']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data/m1/contents/item[name = 'rope']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">ladder </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'ladder']/count"> 0</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'ladder']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data/m1/contents/item[name = 'ladder']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">bolt </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'bolt']/count"> 4123</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'bolt']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data/m1/contents/item[name = 'bolt']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item/name" data-key="key">water </div>
+ <div class="data" data-tag="count" data-xpath="/top/data/m1/contents/item[name = 'water']/count"> 17</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next" data-xpath="/top/data/m1/contents/item[name = 'water']/m2/sub/next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last" data-xpath="/top/data/m1/contents/item[name = 'water']/last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test" data-xpath="/top/data/m1/contents/item[name = 'water']/test">one</div>
+</div>
+<div class="line">
+</div>
diff --git a/contrib/libxo/tests/core/saved/test_08.HP.err b/contrib/libxo/tests/core/saved/test_08.HP.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.HP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.HP.out b/contrib/libxo/tests/core/saved/test_08.HP.out
new file mode 100644
index 0000000..3524f5e
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.HP.out
@@ -0,0 +1,264 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test">one</div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">gum </div>
+ <div class="data" data-tag="count"> 1412</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">rope </div>
+ <div class="data" data-tag="count"> 85</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">ladder </div>
+ <div class="data" data-tag="count"> 0</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">bolt </div>
+ <div class="data" data-tag="count"> 4123</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="name" data-key="key">water </div>
+ <div class="data" data-tag="count"> 17</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">0</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">1</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">1</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">2</div>
+</div>
+<div class="line">
+ <div class="label">Name</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="name">2</div>
+ <div class="text"> + 1 = </div>
+ <div class="data" data-tag="next">3</div>
+</div>
+<div class="line">
+ <div class="label">Last</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="last">3</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="test">one</div>
+</div>
+<div class="line">
+</div>
diff --git a/contrib/libxo/tests/core/saved/test_08.J.err b/contrib/libxo/tests/core/saved/test_08.J.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.J.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.J.out b/contrib/libxo/tests/core/saved/test_08.J.out
new file mode 100644
index 0000000..cbce091
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.J.out
@@ -0,0 +1,2 @@
+{"top": {"data": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17,"test":"one"}]}}, "data": {"contents": {"item": [{"name":"gum","count":1412, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"rope","count":85, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"ladder","count":0, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"bolt","count":4123, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3}, {"name":"water","count":17, "sub": [{"name":0,"next":1}, {"name":1,"next":2}, {"name":2,"next":3}],"last":3,"test":"one"}]}}}
+}
diff --git a/contrib/libxo/tests/core/saved/test_08.JP.err b/contrib/libxo/tests/core/saved/test_08.JP.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.JP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.JP.out b/contrib/libxo/tests/core/saved/test_08.JP.out
new file mode 100644
index 0000000..932d6a1
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.JP.out
@@ -0,0 +1,185 @@
+{
+ "top": {
+ "data": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17
+ }
+ ]
+ }
+ },
+ "data": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17
+ }
+ ]
+ }
+ },
+ "data": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412
+ },
+ {
+ "name": "rope",
+ "count": 85
+ },
+ {
+ "name": "ladder",
+ "count": 0
+ },
+ {
+ "name": "bolt",
+ "count": 4123
+ },
+ {
+ "name": "water",
+ "count": 17,
+ "test": "one"
+ }
+ ]
+ }
+ },
+ "data": {
+ "contents": {
+ "item": [
+ {
+ "name": "gum",
+ "count": 1412,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "rope",
+ "count": 85,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "ladder",
+ "count": 0,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "bolt",
+ "count": 4123,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3
+ },
+ {
+ "name": "water",
+ "count": 17,
+ "sub": [
+ {
+ "name": 0,
+ "next": 1
+ },
+ {
+ "name": 1,
+ "next": 2
+ },
+ {
+ "name": 2,
+ "next": 3
+ }
+ ],
+ "last": 3,
+ "test": "one"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/contrib/libxo/tests/core/saved/test_08.T.err b/contrib/libxo/tests/core/saved/test_08.T.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.T.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.T.out b/contrib/libxo/tests/core/saved/test_08.T.out
new file mode 100644
index 0000000..8923b93
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.T.out
@@ -0,0 +1,52 @@
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+
+
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+
+
+Item Count
+gum 1412
+rope 85
+ladder 0
+bolt 4123
+water 17
+one
+
+Item Count
+gum 1412
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+rope 85
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+ladder 0
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+bolt 4123
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+water 17
+Name: 0 + 1 = 1
+Name: 1 + 1 = 2
+Name: 2 + 1 = 3
+Last: 3
+one
+
diff --git a/contrib/libxo/tests/core/saved/test_08.X.err b/contrib/libxo/tests/core/saved/test_08.X.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.X.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.X.out b/contrib/libxo/tests/core/saved/test_08.X.out
new file mode 100644
index 0000000..5eb72b2
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.X.out
@@ -0,0 +1 @@
+<top><data><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count></item></contents></data><data><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count></item></contents></data><data><contents><item><name key="key">gum</name><count>1412</count></item><item><name key="key">rope</name><count>85</count></item><item><name key="key">ladder</name><count>0</count></item><item><name key="key">bolt</name><count>4123</count></item><item><name key="key">water</name><count>17</count><test>one</test></item></contents></data><data><contents><item><name key="key">gum</name><count>1412</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">rope</name><count>85</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">ladder</name><count>0</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">bolt</name><count>4123</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last></item><item><name key="key">water</name><count>17</count><sub><name>0</name><next>1</next></sub><sub><name>1</name><next>2</next></sub><sub><name>2</name><next>3</next></sub><last>3</last><test>one</test></item></contents></data></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_08.XP.err b/contrib/libxo/tests/core/saved/test_08.XP.err
new file mode 100644
index 0000000..445bfb7
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.XP.err
@@ -0,0 +1,18 @@
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm2'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'data'
+test: close (xo_close_container) fails at marker 'm1'; not found 'top'
diff --git a/contrib/libxo/tests/core/saved/test_08.XP.out b/contrib/libxo/tests/core/saved/test_08.XP.out
new file mode 100644
index 0000000..99520c0
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_08.XP.out
@@ -0,0 +1,165 @@
+<top>
+ <data>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ </item>
+ </contents>
+ </data>
+ <data>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ </item>
+ </contents>
+ </data>
+ <data>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ <test>one</test>
+ </item>
+ </contents>
+ </data>
+ <data>
+ <contents>
+ <item>
+ <name key="key">gum</name>
+ <count>1412</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">rope</name>
+ <count>85</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">ladder</name>
+ <count>0</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">bolt</name>
+ <count>4123</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ </item>
+ <item>
+ <name key="key">water</name>
+ <count>17</count>
+ <sub>
+ <name>0</name>
+ <next>1</next>
+ </sub>
+ <sub>
+ <name>1</name>
+ <next>2</next>
+ </sub>
+ <sub>
+ <name>2</name>
+ <next>3</next>
+ </sub>
+ <last>3</last>
+ <test>one</test>
+ </item>
+ </contents>
+ </data>
+</top>
diff --git a/contrib/libxo/tests/core/saved/test_09.H.err b/contrib/libxo/tests/core/saved/test_09.H.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.H.err
diff --git a/contrib/libxo/tests/core/saved/test_09.H.out b/contrib/libxo/tests/core/saved/test_09.H.out
new file mode 100644
index 0000000..899cd2f
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.H.out
@@ -0,0 +1 @@
+<div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="name">water </div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Item </div><div class="title"> Count</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">water </div></div><div class="line"></div><div class="line"></div><div class="line"><div class="title">Test </div><div class="title"> Three</div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">gum </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">rope </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">ladder </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">bolt </div></div><div class="line"><div class="text">Name: </div><div class="data" data-tag="item">water </div></div><div class="line"><div class="label">Total:</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="total">six</div></div><div class="line"><div class="data" data-tag="one">one</div><div class="data" data-tag="two">two</div><div class="data" data-tag="three">three</div></div><div class="line"></div> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_09.HIPx.err b/contrib/libxo/tests/core/saved/test_09.HIPx.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.HIPx.err
diff --git a/contrib/libxo/tests/core/saved/test_09.HIPx.out b/contrib/libxo/tests/core/saved/test_09.HIPx.out
new file mode 100644
index 0000000..a63f292
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.HIPx.out
@@ -0,0 +1,93 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name" data-xpath="/top/data/contents/name">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Test </div>
+ <div class="title"> Three</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item" data-xpath="/top/data/contents/item">water </div>
+</div>
+<div class="line">
+ <div class="label">Total:</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="total" data-xpath="/top/data/contents/total">six</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="one" data-xpath="/top/data/contents/one">one</div>
+ <div class="data" data-tag="two" data-xpath="/top/data/contents/two">two</div>
+ <div class="data" data-tag="three" data-xpath="/top/data/contents/three">three</div>
+</div>
+<div class="line">
+</div>
diff --git a/contrib/libxo/tests/core/saved/test_09.HP.err b/contrib/libxo/tests/core/saved/test_09.HP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.HP.err
diff --git a/contrib/libxo/tests/core/saved/test_09.HP.out b/contrib/libxo/tests/core/saved/test_09.HP.out
new file mode 100644
index 0000000..8a8f700
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.HP.out
@@ -0,0 +1,93 @@
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="name">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Item </div>
+ <div class="title"> Count</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">water </div>
+</div>
+<div class="line">
+</div>
+<div class="line">
+</div>
+<div class="line">
+ <div class="title">Test </div>
+ <div class="title"> Three</div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">gum </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">rope </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">ladder </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">bolt </div>
+</div>
+<div class="line">
+ <div class="text">Name: </div>
+ <div class="data" data-tag="item">water </div>
+</div>
+<div class="line">
+ <div class="label">Total:</div>
+ <div class="decoration">:</div>
+ <div class="padding"> </div>
+ <div class="data" data-tag="total">six</div>
+</div>
+<div class="line">
+ <div class="data" data-tag="one">one</div>
+ <div class="data" data-tag="two">two</div>
+ <div class="data" data-tag="three">three</div>
+</div>
+<div class="line">
+</div>
diff --git a/contrib/libxo/tests/core/saved/test_09.J.err b/contrib/libxo/tests/core/saved/test_09.J.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.J.err
diff --git a/contrib/libxo/tests/core/saved/test_09.J.out b/contrib/libxo/tests/core/saved/test_09.J.out
new file mode 100644
index 0000000..e43ad31
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.J.out
@@ -0,0 +1,2 @@
+{"top": {"data": {"contents": {"name": ["gum","rope","ladder","bolt","water"]}, "contents": {"item": ["gum","rope","ladder","bolt","water"]}, "contents": {"item": ["gum","rope","ladder","bolt","water"],"total":"six","one":"one", "two": ["two"],"three":"three"}}}
+}
diff --git a/contrib/libxo/tests/core/saved/test_09.JP.err b/contrib/libxo/tests/core/saved/test_09.JP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.JP.err
diff --git a/contrib/libxo/tests/core/saved/test_09.JP.out b/contrib/libxo/tests/core/saved/test_09.JP.out
new file mode 100644
index 0000000..8340b27
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.JP.out
@@ -0,0 +1,27 @@
+{
+ "top": {
+ "data": {
+ "contents": {
+ "name": [
+ "gum", "rope", "ladder", "bolt", "water"
+ ]
+ },
+ "contents": {
+ "item": [
+ "gum", "rope", "ladder", "bolt", "water"
+ ]
+ },
+ "contents": {
+ "item": [
+ "gum", "rope", "ladder", "bolt", "water"
+ ],
+ "total": "six",
+ "one": "one",
+ "two": [
+ "two"
+ ],
+ "three": "three"
+ }
+ }
+ }
+}
diff --git a/contrib/libxo/tests/core/saved/test_09.T.err b/contrib/libxo/tests/core/saved/test_09.T.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.T.err
diff --git a/contrib/libxo/tests/core/saved/test_09.T.out b/contrib/libxo/tests/core/saved/test_09.T.out
new file mode 100644
index 0000000..5bb163e
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.T.out
@@ -0,0 +1,25 @@
+Item Count
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+
+
+Item Count
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+
+
+Test Three
+Name: gum
+Name: rope
+Name: ladder
+Name: bolt
+Name: water
+Total:: six
+onetwothree
+
diff --git a/contrib/libxo/tests/core/saved/test_09.X.err b/contrib/libxo/tests/core/saved/test_09.X.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.X.err
diff --git a/contrib/libxo/tests/core/saved/test_09.X.out b/contrib/libxo/tests/core/saved/test_09.X.out
new file mode 100644
index 0000000..21ce1ce
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.X.out
@@ -0,0 +1 @@
+<top><data><contents><name>gum</name><name>rope</name><name>ladder</name><name>bolt</name><name>water</name></contents><contents><item>gum</item><item>rope</item><item>ladder</item><item>bolt</item><item>water</item></contents><contents><item>gum</item><item>rope</item><item>ladder</item><item>bolt</item><item>water</item><total>six</total><one>one</one><two>two</two><three>three</three></contents></data></top> \ No newline at end of file
diff --git a/contrib/libxo/tests/core/saved/test_09.XP.err b/contrib/libxo/tests/core/saved/test_09.XP.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.XP.err
diff --git a/contrib/libxo/tests/core/saved/test_09.XP.out b/contrib/libxo/tests/core/saved/test_09.XP.out
new file mode 100644
index 0000000..9476126
--- /dev/null
+++ b/contrib/libxo/tests/core/saved/test_09.XP.out
@@ -0,0 +1,29 @@
+<top>
+ <data>
+ <contents>
+ <name>gum</name>
+ <name>rope</name>
+ <name>ladder</name>
+ <name>bolt</name>
+ <name>water</name>
+ </contents>
+ <contents>
+ <item>gum</item>
+ <item>rope</item>
+ <item>ladder</item>
+ <item>bolt</item>
+ <item>water</item>
+ </contents>
+ <contents>
+ <item>gum</item>
+ <item>rope</item>
+ <item>ladder</item>
+ <item>bolt</item>
+ <item>water</item>
+ <total>six</total>
+ <one>one</one>
+ <two>two</two>
+ <three>three</three>
+ </contents>
+ </data>
+</top>
diff --git a/contrib/libxo/tests/core/test_01.c b/contrib/libxo/tests/core/test_01.c
index 164a38b..9a9ed2c 100644
--- a/contrib/libxo/tests/core/test_01.c
+++ b/contrib/libxo/tests/core/test_01.c
@@ -11,6 +11,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
+#include <errno.h>
#include "xo.h"
@@ -69,6 +71,10 @@ main (int argc, char **argv)
xo_set_flags(NULL, XOF_XPATH);
else if (strcmp(argv[argc], "info") == 0)
xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
}
xo_set_info(NULL, info, info_count);
@@ -76,14 +82,17 @@ main (int argc, char **argv)
xo_open_container_h(NULL, "top");
+ xo_attr("test", "value");
xo_open_container("data");
xo_open_list("item");
+ xo_attr("test2", "value2");
xo_emit("{T:Item/%-10s}{T:Total Sold/%12s}{T:In Stock/%12s}"
"{T:On Order/%12s}{T:SKU/%5s}\n");
for (ip = list; ip->i_title; ip++) {
xo_open_instance("item");
+ xo_attr("test3", "value3");
xo_emit("{keq:sku/%s-%u/%s-000-%u}"
"{k:name/%-10s/%s}{n:sold/%12u/%u}{:in-stock/%12u/%u}"
@@ -142,6 +151,25 @@ main (int argc, char **argv)
xo_close_list("item");
xo_close_container("data");
+ xo_open_container("data");
+ xo_open_list("item");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_attr("test4", "value4");
+ xo_emit("{Lwc:Item}{l:item}\n", ip->i_title);
+ }
+
+ xo_close_list("item");
+ xo_close_container("data");
+
+ xo_emit("X{P:}X", "epic fail");
+ xo_emit("X{T:}X", "epic fail");
+ xo_emit("X{N:}X", "epic fail");
+ xo_emit("X{L:}X\n", "epic fail");
+
+ xo_emit("X{P: }X{Lwc:Cost}{:cost/%u}\n", 425);
+ xo_emit("X{P:/%30s}X{Lwc:Cost}{:cost/%u}\n", "", 455);
+
xo_close_container_h(NULL, "top");
xo_finish();
diff --git a/contrib/libxo/tests/core/test_07.c b/contrib/libxo/tests/core/test_07.c
index 18b7baa..5b1ed57 100644
--- a/contrib/libxo/tests/core/test_07.c
+++ b/contrib/libxo/tests/core/test_07.c
@@ -68,11 +68,12 @@ main (int argc, char **argv)
"Unicode-ის მეათე საერთაშორისო");
xo_emit("{:columns/%d}\n", rc);
- xo_open_list("employee");
rc = xo_emit("{T:First Name/%-25s}{T:Last Name/%-14s}"
"{T:/%-12s}{T:Time (%)}\n", "Department");
xo_emit("{:columns/%d}\n", rc);
+
+ xo_open_list("employee");
for ( ; ep->e_first; ep++) {
xo_open_instance("employee");
rc = xo_emit("{[:-25}{:first-name/%s} ({:nic-name/\"%s\"}){]:}"
diff --git a/contrib/libxo/tests/core/test_08.c b/contrib/libxo/tests/core/test_08.c
new file mode 100644
index 0000000..eb3776d
--- /dev/null
+++ b/contrib/libxo/tests/core/test_08.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2015, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2015
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ struct item {
+ const char *i_title;
+ int i_count;
+ };
+ struct item list[] = {
+ { "gum", 1412 },
+ { "rope", 85 },
+ { "ladder", 0 },
+ { "bolt", 4123 },
+ { "water", 17 },
+ { NULL, 0 }
+ };
+ struct item *ip;
+ int i;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ 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], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_flags(NULL, XOF_KEYS);
+ xo_set_program("test");
+
+ xo_open_container_h(NULL, "top");
+
+ xo_open_container("data");
+ xo_open_container("contents");
+ xo_open_list("item");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+
+ xo_close_instance("item");
+ }
+
+ xo_close_list("item");
+ xo_close_container("contents");
+ xo_close_container("data");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+ }
+
+ xo_close_container("data");
+
+ xo_emit("\n\n");
+
+ xo_open_container("data");
+ xo_open_marker("m1");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+ }
+
+ xo_close_container("data"); /* Should be a noop */
+ xo_emit("{:test}", "one");
+
+ xo_close_marker("m1");
+ xo_close_container("data"); /* Should be a noop */
+
+ xo_emit("\n\n");
+
+ xo_open_container("data");
+ xo_open_marker("m1");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_open_instance("item");
+
+ xo_emit("{k:name/%-10s/%s}{n:count/%12u/%u}\n",
+ ip->i_title, ip->i_count);
+
+ xo_open_marker("m2");
+ for (i = 0; i < 3; i++) {
+ xo_open_instance("sub");
+ xo_emit("{Lwc:/Name}{:name/%d} + 1 = {:next/%d}\n", i, i + 1);
+ xo_close_container("data");
+ }
+ xo_close_marker("m2");
+ xo_emit("{Lwc:/Last}{:last/%d}\n", i);
+ }
+
+ xo_close_container("data"); /* Should be a noop */
+ xo_emit("{:test}", "one");
+
+ xo_emit("\n\n");
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
diff --git a/contrib/libxo/tests/core/test_09.c b/contrib/libxo/tests/core/test_09.c
new file mode 100644
index 0000000..a612a64
--- /dev/null
+++ b/contrib/libxo/tests/core/test_09.c
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2015, Juniper Networks, Inc.
+ * All rights reserved.
+ * This SOFTWARE is licensed under the LICENSE provided in the
+ * ../Copyright file. By downloading, installing, copying, or otherwise
+ * using the SOFTWARE, you agree to be bound by the terms of that
+ * LICENSE.
+ * Phil Shafer, July 2015
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "xo.h"
+
+int
+main (int argc, char **argv)
+{
+ struct item {
+ const char *i_title;
+ int i_count;
+ };
+ struct item list[] = {
+ { "gum", 1412 },
+ { "rope", 85 },
+ { "ladder", 0 },
+ { "bolt", 4123 },
+ { "water", 17 },
+ { NULL, 0 }
+ };
+ struct item *ip;
+ int i;
+
+ argc = xo_parse_args(argc, argv);
+ if (argc < 0)
+ return 1;
+
+ for (argc = 1; argv[argc]; argc++) {
+ if (strcmp(argv[argc], "xml") == 0)
+ xo_set_style(NULL, XO_STYLE_XML);
+ else if (strcmp(argv[argc], "json") == 0)
+ xo_set_style(NULL, XO_STYLE_JSON);
+ else if (strcmp(argv[argc], "text") == 0)
+ 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], "pretty") == 0)
+ xo_set_flags(NULL, XOF_PRETTY);
+ else if (strcmp(argv[argc], "xpath") == 0)
+ xo_set_flags(NULL, XOF_XPATH);
+ else if (strcmp(argv[argc], "info") == 0)
+ xo_set_flags(NULL, XOF_INFO);
+ else if (strcmp(argv[argc], "error") == 0) {
+ close(-1);
+ xo_err(1, "error detected");
+ }
+ }
+
+ xo_set_flags(NULL, XOF_KEYS);
+ xo_set_program("test");
+
+ xo_open_container_h(NULL, "top");
+
+ xo_open_container("data");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:name/%-10s/%s}\n", ip->i_title);
+ }
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+ xo_open_container("contents");
+
+ xo_emit("{T:Item/%-10s}{T:Count/%12s}\n");
+
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:item/%-10s/%s}\n", ip->i_title);
+ }
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+
+ xo_open_container("contents");
+ xo_emit("{T:Test/%-10s}{T:Three/%12s}\n");
+
+ xo_open_list("item");
+ for (ip = list; ip->i_title; ip++) {
+ xo_emit("Name: {l:item/%-10s/%s}\n", ip->i_title);
+ }
+ xo_emit("{Lwc:/Total:}{:total}\n", "six");
+
+ xo_emit("{:one}", "one");
+ xo_emit("{l:two}", "two");
+ xo_emit("{:three}", "three");
+
+
+ xo_close_container("contents");
+
+ xo_emit("\n\n");
+
+ xo_close_container_h(NULL, "top");
+
+ xo_finish();
+
+ return 0;
+}
OpenPOWER on IntegriCloud