├── .cirrus.yml ├── .github └── workflows │ └── c-cpp.yml ├── .gitignore ├── .travis.yml ├── Copyright ├── INSTALL.md ├── LICENSE ├── Makefile.am ├── README.md ├── bin ├── Makefile.am ├── Zaliases └── setup.sh ├── build └── .create ├── configure.ac ├── doc ├── Makefile.am ├── _static │ └── basic.css_t ├── _templates │ └── localtoc.html ├── api.rst ├── conf.py ├── encoders.rst ├── example.rst ├── faq.rst ├── field-formatting.rst ├── field-modifiers.rst ├── field-roles.rst ├── format-strings.rst ├── formatting.rst ├── getting.rst ├── howto.rst ├── index.rst ├── intro.rst ├── options.rst ├── top-link.html.in ├── xo.rst ├── xohtml.rst ├── xolint-errors.rst ├── xolint.rst └── xopo.rst ├── encoder ├── Makefile.am ├── cbor │ ├── Makefile.am │ └── enc_cbor.c ├── csv │ ├── Makefile.am │ └── enc_csv.c ├── fullpath │ ├── Makefile.am │ └── enc_fullpath.c └── test │ ├── Makefile.am │ └── enc_test.c ├── libxo-config.in ├── libxo ├── Makefile.am ├── add.man.in ├── gen-wide.sh ├── libxo.3 ├── libxo.7 ├── libxo.c ├── xo.h ├── xo_attr.3 ├── xo_buf.h ├── xo_create.3 ├── xo_csv.7 ├── xo_emit.3 ├── xo_emit_err.3 ├── xo_emit_f.3 ├── xo_emit_field.3 ├── xo_encoder.c ├── xo_encoder.h ├── xo_err.3 ├── xo_error.3 ├── xo_explicit.h ├── xo_filter.c ├── xo_filter.h ├── xo_finish.3 ├── xo_flush.3 ├── xo_format.5 ├── xo_humanize.h ├── xo_message.3 ├── xo_no_setlocale.3 ├── xo_open_container.3 ├── xo_open_list.3 ├── xo_open_marker.3 ├── xo_options.7 ├── xo_parse_args.3 ├── xo_private.h ├── xo_set_allocator.3 ├── xo_set_flags.3 ├── xo_set_info.3 ├── xo_set_options.3 ├── xo_set_style.3 ├── xo_set_syslog_enterprise_id.3 ├── xo_set_version.3 ├── xo_set_writer.3 ├── xo_syslog.3 ├── xo_syslog.c ├── xo_tolower.c ├── xo_toupper.c ├── xo_utf8.3 ├── xo_utf8.c ├── xo_utf8.h ├── xo_wcwidth.h ├── xo_xparse.c ├── xo_xparse.h └── xo_xpath.y ├── packaging ├── libxo.pc.in ├── libxo.rb.base.in └── libxo.spec.in ├── patches ├── df.patch ├── ls.patch ├── netstat.patch ├── ps.patch ├── vmstat.patch ├── w.patch └── wc.patch ├── tests ├── Makefile.am ├── core │ ├── Makefile.am │ ├── saved │ │ ├── test_01.E.err │ │ ├── test_01.E.out │ │ ├── test_01.Ecsv1.err │ │ ├── test_01.Ecsv1.out │ │ ├── test_01.Ecsv2.err │ │ ├── test_01.Ecsv2.out │ │ ├── test_01.Ecsv3.err │ │ ├── test_01.Ecsv3.out │ │ ├── test_01.H.err │ │ ├── test_01.H.out │ │ ├── test_01.HIPx.err │ │ ├── test_01.HIPx.out │ │ ├── test_01.HP.err │ │ ├── test_01.HP.out │ │ ├── test_01.J.err │ │ ├── test_01.J.out │ │ ├── test_01.JP.err │ │ ├── test_01.JP.out │ │ ├── test_01.JPu.err │ │ ├── test_01.JPu.out │ │ ├── test_01.T.err │ │ ├── test_01.T.out │ │ ├── test_01.X.err │ │ ├── test_01.X.out │ │ ├── test_01.XP.err │ │ ├── test_01.XP.out │ │ ├── test_01.err │ │ ├── test_01.out │ │ ├── test_02.E.err │ │ ├── test_02.E.out │ │ ├── test_02.H.err │ │ ├── test_02.H.out │ │ ├── test_02.HIPx.err │ │ ├── test_02.HIPx.out │ │ ├── test_02.HP.err │ │ ├── test_02.HP.out │ │ ├── test_02.J.err │ │ ├── test_02.J.out │ │ ├── test_02.JP.err │ │ ├── test_02.JP.out │ │ ├── test_02.JPu.err │ │ ├── test_02.JPu.out │ │ ├── test_02.T.err │ │ ├── test_02.T.out │ │ ├── test_02.X.err │ │ ├── test_02.X.out │ │ ├── test_02.XP.err │ │ ├── test_02.XP.out │ │ ├── test_02.err │ │ ├── test_02.out │ │ ├── test_03.E.err │ │ ├── test_03.E.out │ │ ├── test_03.H.err │ │ ├── test_03.H.out │ │ ├── test_03.HIPx.err │ │ ├── test_03.HIPx.out │ │ ├── test_03.HP.err │ │ ├── test_03.HP.out │ │ ├── test_03.J.err │ │ ├── test_03.J.out │ │ ├── test_03.JP.err │ │ ├── test_03.JP.out │ │ ├── test_03.JPu.err │ │ ├── test_03.JPu.out │ │ ├── test_03.T.err │ │ ├── test_03.T.out │ │ ├── test_03.X.err │ │ ├── test_03.X.out │ │ ├── test_03.XP.err │ │ ├── test_03.XP.out │ │ ├── test_03.err │ │ ├── test_03.out │ │ ├── test_04.E.err │ │ ├── test_04.E.out │ │ ├── test_04.H.err │ │ ├── test_04.H.out │ │ ├── test_04.HIPx.err │ │ ├── test_04.HIPx.out │ │ ├── test_04.HP.err │ │ ├── test_04.HP.out │ │ ├── test_04.J.err │ │ ├── test_04.J.out │ │ ├── test_04.JP.err │ │ ├── test_04.JP.out │ │ ├── test_04.JPu.err │ │ ├── test_04.JPu.out │ │ ├── test_04.T.err │ │ ├── test_04.T.out │ │ ├── test_04.X.err │ │ ├── test_04.X.out │ │ ├── test_04.XP.err │ │ ├── test_04.XP.out │ │ ├── test_05.E.err │ │ ├── test_05.E.out │ │ ├── test_05.H.err │ │ ├── test_05.H.out │ │ ├── test_05.HIPx.err │ │ ├── test_05.HIPx.out │ │ ├── test_05.HP.err │ │ ├── test_05.HP.out │ │ ├── test_05.J.err │ │ ├── test_05.J.out │ │ ├── test_05.JP.err │ │ ├── test_05.JP.out │ │ ├── test_05.JPu.err │ │ ├── test_05.JPu.out │ │ ├── test_05.T.err │ │ ├── test_05.T.out │ │ ├── test_05.X.err │ │ ├── test_05.X.out │ │ ├── test_05.XP.err │ │ ├── test_05.XP.out │ │ ├── test_06.E.err │ │ ├── test_06.E.out │ │ ├── test_06.H.err │ │ ├── test_06.H.out │ │ ├── test_06.HIPx.err │ │ ├── test_06.HIPx.out │ │ ├── test_06.HP.err │ │ ├── test_06.HP.out │ │ ├── test_06.J.err │ │ ├── test_06.J.out │ │ ├── test_06.JP.err │ │ ├── test_06.JP.out │ │ ├── test_06.JPu.err │ │ ├── test_06.JPu.out │ │ ├── test_06.T.err │ │ ├── test_06.T.out │ │ ├── test_06.X.err │ │ ├── test_06.X.out │ │ ├── test_06.XP.err │ │ ├── test_06.XP.out │ │ ├── test_07.E.err │ │ ├── test_07.E.out │ │ ├── test_07.H.err │ │ ├── test_07.H.out │ │ ├── test_07.HIPx.err │ │ ├── test_07.HIPx.out │ │ ├── test_07.HP.err │ │ ├── test_07.HP.out │ │ ├── test_07.J.err │ │ ├── test_07.J.out │ │ ├── test_07.JP.err │ │ ├── test_07.JP.out │ │ ├── test_07.JPu.err │ │ ├── test_07.JPu.out │ │ ├── test_07.T.err │ │ ├── test_07.T.out │ │ ├── test_07.X.err │ │ ├── test_07.X.out │ │ ├── test_07.XP.err │ │ ├── test_07.XP.out │ │ ├── test_08.E.err │ │ ├── test_08.E.out │ │ ├── test_08.H.err │ │ ├── test_08.H.out │ │ ├── test_08.HIPx.err │ │ ├── test_08.HIPx.out │ │ ├── test_08.HP.err │ │ ├── test_08.HP.out │ │ ├── test_08.J.err │ │ ├── test_08.J.out │ │ ├── test_08.JP.err │ │ ├── test_08.JP.out │ │ ├── test_08.JPu.err │ │ ├── test_08.JPu.out │ │ ├── test_08.T.err │ │ ├── test_08.T.out │ │ ├── test_08.X.err │ │ ├── test_08.X.out │ │ ├── test_08.XP.err │ │ ├── test_08.XP.out │ │ ├── test_09.E.err │ │ ├── test_09.E.out │ │ ├── test_09.H.err │ │ ├── test_09.H.out │ │ ├── test_09.HIPx.err │ │ ├── test_09.HIPx.out │ │ ├── test_09.HP.err │ │ ├── test_09.HP.out │ │ ├── test_09.J.err │ │ ├── test_09.J.out │ │ ├── test_09.JP.err │ │ ├── test_09.JP.out │ │ ├── test_09.JPu.err │ │ ├── test_09.JPu.out │ │ ├── test_09.T.err │ │ ├── test_09.T.out │ │ ├── test_09.X.err │ │ ├── test_09.X.out │ │ ├── test_09.XP.err │ │ ├── test_09.XP.out │ │ ├── test_10.E.err │ │ ├── test_10.E.out │ │ ├── test_10.H.err │ │ ├── test_10.H.out │ │ ├── test_10.HIPx.err │ │ ├── test_10.HIPx.out │ │ ├── test_10.HP.err │ │ ├── test_10.HP.out │ │ ├── test_10.J.err │ │ ├── test_10.J.out │ │ ├── test_10.JP.err │ │ ├── test_10.JP.out │ │ ├── test_10.JPu.err │ │ ├── test_10.JPu.out │ │ ├── test_10.T.err │ │ ├── test_10.T.out │ │ ├── test_10.X.err │ │ ├── test_10.X.out │ │ ├── test_10.XP.err │ │ ├── test_10.XP.out │ │ ├── test_10.err │ │ ├── test_10.out │ │ ├── test_11.E.err │ │ ├── test_11.E.out │ │ ├── test_11.H.err │ │ ├── test_11.H.out │ │ ├── test_11.HIPx.err │ │ ├── test_11.HIPx.out │ │ ├── test_11.HP.err │ │ ├── test_11.HP.out │ │ ├── test_11.J.err │ │ ├── test_11.J.out │ │ ├── test_11.JP.err │ │ ├── test_11.JP.out │ │ ├── test_11.JPu.err │ │ ├── test_11.JPu.out │ │ ├── test_11.T.err │ │ ├── test_11.T.out │ │ ├── test_11.X.err │ │ ├── test_11.X.out │ │ ├── test_11.XP.err │ │ ├── test_11.XP.out │ │ ├── test_12.E.err │ │ ├── test_12.E.out │ │ ├── test_12.H.err │ │ ├── test_12.H.out │ │ ├── test_12.HIPx.err │ │ ├── test_12.HIPx.out │ │ ├── test_12.HP.err │ │ ├── test_12.HP.out │ │ ├── test_12.J.err │ │ ├── test_12.J.out │ │ ├── test_12.JP.err │ │ ├── test_12.JP.out │ │ ├── test_12.JPmap.err │ │ ├── test_12.JPmap.out │ │ ├── test_12.JPu.err │ │ ├── test_12.JPu.out │ │ ├── test_12.T.err │ │ ├── test_12.T.out │ │ ├── test_12.X.err │ │ ├── test_12.X.out │ │ ├── test_12.XP.err │ │ ├── test_12.XP.out │ │ ├── test_12.XPmap.err │ │ ├── test_12.XPmap.out │ │ ├── test_13.E.err │ │ ├── test_13.E.out │ │ ├── test_13.H.err │ │ ├── test_13.H.out │ │ ├── test_13.HIPx.err │ │ ├── test_13.HIPx.out │ │ ├── test_13.HP.err │ │ ├── test_13.HP.out │ │ ├── test_13.J.err │ │ ├── test_13.J.out │ │ ├── test_13.JP.err │ │ ├── test_13.JP.out │ │ ├── test_13.JPu.err │ │ ├── test_13.JPu.out │ │ ├── test_13.T.err │ │ ├── test_13.T.out │ │ ├── test_13.X.err │ │ ├── test_13.X.out │ │ ├── test_13.XP.err │ │ └── test_13.XP.out │ ├── test_01.c │ ├── test_02.c │ ├── test_03.c │ ├── test_04.c │ ├── test_05.c │ ├── test_06.c │ ├── test_07.c │ ├── test_08.c │ ├── test_09.c │ ├── test_10.c │ ├── test_11.c │ ├── test_12.c │ ├── test_12.map │ └── test_13.c ├── gettext │ ├── Makefile.am │ ├── gt_01.c │ ├── gt_01.pot │ ├── ldns.pot │ ├── po │ │ └── pig_latin │ │ │ ├── gt_01.po │ │ │ ├── ldns.po │ │ │ └── strerror.po │ ├── saved │ │ ├── gt_01.H.err │ │ ├── gt_01.H.out │ │ ├── gt_01.HIPx.err │ │ ├── gt_01.HIPx.out │ │ ├── gt_01.HP.err │ │ ├── gt_01.HP.out │ │ ├── gt_01.J.err │ │ ├── gt_01.J.out │ │ ├── gt_01.JP.err │ │ ├── gt_01.JP.out │ │ ├── gt_01.T.err │ │ ├── gt_01.T.out │ │ ├── gt_01.X.err │ │ ├── gt_01.X.out │ │ ├── gt_01.XP.err │ │ └── gt_01.XP.out │ └── strerror.pot ├── run-tests.sh ├── utf8 │ ├── Makefile.am │ ├── data_01.txt │ ├── saved │ │ ├── utf8_01.T.err │ │ ├── utf8_01.T.out │ │ ├── utf8_02.T.err │ │ ├── utf8_02.T.out │ │ ├── utf8_03.T.err │ │ └── utf8_03.T.out │ ├── utf8_01.c │ ├── utf8_02.c │ └── utf8_03.c ├── xo │ ├── Makefile.am │ ├── saved │ │ ├── xo_01.H.err │ │ ├── xo_01.H.out │ │ ├── xo_01.HIPx.err │ │ ├── xo_01.HIPx.out │ │ ├── xo_01.HP.err │ │ ├── xo_01.HP.out │ │ ├── xo_01.J.err │ │ ├── xo_01.J.out │ │ ├── xo_01.JP.err │ │ ├── xo_01.JP.out │ │ ├── xo_01.T.err │ │ ├── xo_01.T.out │ │ ├── xo_01.X.err │ │ ├── xo_01.X.out │ │ ├── xo_01.XP.err │ │ ├── xo_01.XP.out │ │ ├── xo_02.H.err │ │ ├── xo_02.H.out │ │ ├── xo_02.HIPx.err │ │ ├── xo_02.HIPx.out │ │ ├── xo_02.HP.err │ │ ├── xo_02.HP.out │ │ ├── xo_02.J.err │ │ ├── xo_02.J.out │ │ ├── xo_02.JP.err │ │ ├── xo_02.JP.out │ │ ├── xo_02.T.err │ │ ├── xo_02.T.out │ │ ├── xo_02.X.err │ │ ├── xo_02.X.out │ │ ├── xo_02.XP.err │ │ └── xo_02.XP.out │ ├── xo_01.sh │ └── xo_02.sh └── xpath │ ├── Makefile.am │ ├── saved │ ├── files.txt │ ├── xpath_01_01.1.fullpath.err │ ├── xpath_01_01.1.fullpath.out │ ├── xpath_01_01.2.fullpath.err │ ├── xpath_01_01.2.fullpath.out │ ├── xpath_01_02.1.fullpath.err │ ├── xpath_01_02.1.fullpath.out │ ├── xpath_01_02.2.fullpath.err │ ├── xpath_01_02.2.fullpath.out │ ├── xpath_01_03.1.fullpath.err │ ├── xpath_01_03.1.fullpath.out │ ├── xpath_01_03.2.fullpath.err │ ├── xpath_01_03.2.fullpath.out │ ├── xpath_01_04.1.fullpath.err │ ├── xpath_01_04.1.fullpath.out │ ├── xpath_01_04.2.fullpath.err │ ├── xpath_01_04.2.fullpath.out │ ├── xpath_01_05.1.fullpath.err │ ├── xpath_01_05.1.fullpath.out │ ├── xpath_01_05.2.fullpath.err │ ├── xpath_01_05.2.fullpath.out │ ├── xpath_01_06.1.fullpath.err │ ├── xpath_01_06.1.fullpath.out │ ├── xpath_01_06.2.fullpath.err │ ├── xpath_01_06.2.fullpath.out │ ├── xpath_01_07.1.fullpath.err │ ├── xpath_01_07.1.fullpath.out │ ├── xpath_01_07.2.fullpath.err │ ├── xpath_01_07.2.fullpath.out │ ├── xpath_01_08.1.fullpath.err │ ├── xpath_01_08.1.fullpath.out │ ├── xpath_01_08.2.fullpath.err │ └── xpath_01_08.2.fullpath.out │ ├── xpath_01.c │ ├── xpath_01_01.in │ ├── xpath_01_02.in │ ├── xpath_01_03.in │ ├── xpath_01_04.in │ ├── xpath_01_05.in │ ├── xpath_01_06.in │ ├── xpath_01_07.in │ └── xpath_01_08.in ├── warnings.mk ├── xo ├── Makefile.am ├── xo.1 └── xo.c ├── xohtml ├── Makefile.am ├── external │ ├── jquery.js │ ├── jquery.qtip.css │ └── jquery.qtip.js ├── xohtml.1 ├── xohtml.css ├── xohtml.js └── xohtml.sh.in ├── xolint ├── Makefile.am ├── xolint.1 └── xolint.pl └── xopo ├── Makefile.am ├── xopo.1 └── xopo.c /.cirrus.yml: -------------------------------------------------------------------------------- 1 | env: 2 | CIRRUS_CLONE_DEPTH: 1 3 | ARCH: amd64 4 | 5 | task: 6 | freebsd_instance: 7 | matrix: 8 | image: freebsd-13-0-release-amd64 9 | image: freebsd-12-0-release-amd64 10 | install_script: 11 | - sed -i.bak -e 's,pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly,pkg+http://pkg.FreeBSD.org/\${ABI}/latest,' /etc/pkg/FreeBSD.conf 12 | - pkg install -y autoconf automake gmake libtool 13 | script: 14 | - printenv && uname -a && ls -l && /bin/sh -x ./bin/setup.sh && cd build && env MAKE=gmake ../configure --enable-warnings && gmake && sudo gmake install && gmake test 15 | 16 | -------------------------------------------------------------------------------- /.github/workflows/c-cpp.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ CI 2 | 3 | on: 4 | push: 5 | branches: [ master develop ] 6 | pull_request: 7 | branches: [ master develop ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: configure 17 | run: ./configure 18 | - name: make 19 | run: make 20 | - name: make check 21 | run: make check 22 | - name: make distcheck 23 | run: make distcheck 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Object files 2 | *.o 3 | 4 | # Libraries 5 | *.lib 6 | *.a 7 | 8 | # Shared objects (inc. Windows DLLs) 9 | *.dll 10 | *.so 11 | *.so.* 12 | *.dylib 13 | 14 | # Executables 15 | *.exe 16 | *.app 17 | 18 | *~ 19 | *.orig 20 | 21 | aclocal.m4 22 | ar-lib 23 | autom4te.cache 24 | build 25 | compile 26 | config.guess 27 | config.h.in 28 | config.sub 29 | depcomp 30 | install-sh 31 | ltmain.sh 32 | missing 33 | m4 34 | 35 | Makefile.in 36 | configure 37 | .DS_Store 38 | 39 | xoconfig.h.in 40 | xo_config.h.in 41 | 42 | .gdbinit 43 | .gdbinit.local 44 | xtest 45 | xtest.dSYM 46 | tests/w 47 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | 3 | include: 4 | - os: linux 5 | script: printenv && uname -a && ls -l && /bin/sh -x ./bin/setup.sh && cd build && ../configure --enable-warnings && make && sudo make install && make test 6 | - os: freebsd 7 | script: printenv && uname -a && ls -l && /bin/sh -x ./bin/setup.sh && cd build && MAKE=gmake ../configure --enable-warnings && gmake && sudo gmake install && gmake test 8 | 9 | notifications: 10 | recipients: 11 | - libslax-noise@googlegroups.com 12 | 13 | branches: 14 | only: 15 | - develop 16 | - master 17 | -------------------------------------------------------------------------------- /Copyright: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Juniper Networks, Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions 6 | are met: 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 2. Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 | SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | 11 | 12 | ## Instructions for building libxo 13 | 14 | Instructions for building libxo are now available in the 15 | [wiki](http://juniper.github.io/libxo/libxo-manual.html#getting-libxo). 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, Juniper Networks 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /bin/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2013, Juniper Networks, Inc. 3 | # All rights reserved. 4 | # This SOFTWARE is licensed under the LICENSE provided in the 5 | # ../Copyright file. By downloading, installing, copying, or otherwise 6 | # using the SOFTWARE, you agree to be bound by the terms of that 7 | # LICENSE. 8 | 9 | EXTRA_DIST = setup.sh 10 | -------------------------------------------------------------------------------- /bin/Zaliases: -------------------------------------------------------------------------------- 1 | set top_src=`pwd` 2 | alias Zautoreconf "(cd $top_src ; autoreconf --install)" 3 | 4 | set ZENV="" 5 | 6 | switch ( `uname` ) 7 | case FreeBSD*: 8 | set ZENV="MAKE=gmake " 9 | breaksw 10 | endsw 11 | 12 | if ( -x /opt/local/bin/msgfmt ) then 13 | set gettext='--with-gettext=/opt/local' 14 | else if ( -x /usr/local/bin/msgfmt ) then 15 | set gettext='--with-gettext=/usr/local' 16 | else 17 | set gettext='' 18 | endif 19 | 20 | set opts=' \ 21 | --with-libslax-prefix=${HOME}/work/root \ 22 | --enable-debug \ 23 | --enable-filters \ 24 | --enable-warnings \ 25 | --enable-printflike \ 26 | --prefix ${HOME}/work/root \ 27 | ${gettext} \ 28 | ' 29 | set opts=`echo $opts` 30 | 31 | setenv CONFIGURE_OPTS "$opts" 32 | setenv ADB_PATH $top_src/build/libxo/.libs 33 | 34 | alias Zconfigure "(cd $top_src/build; env $ZENV ../configure $opts)" 35 | alias Zbuild "(cd $top_src/build; make \!* )" 36 | alias mi "(cd $top_src/build; make && make install); ." 37 | 38 | mkdir -p build 39 | cd build 40 | 41 | 42 | alias xx 'cc -I.. -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Werror -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wformat -Wimplicit -Wmissing-declarations -Wnested-externs -Wparentheses -Wreturn-type -Wshadow -Wswitch -Wtrigraphs -Wuninitialized -Wunused -Wwrite-strings -fno-inline-functions-called-once -g -O2 -o xtest -DUNIT_TEST libxo.c' 43 | 44 | alias mm "make CFLAGS='-O0 -g'" 45 | 46 | alias mmi 'mm && mi' 47 | -------------------------------------------------------------------------------- /bin/setup.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2013, Juniper Networks, Inc. 3 | # All rights reserved. 4 | # This SOFTWARE is licensed under the LICENSE provided in the 5 | # ../Copyright file. By downloading, installing, copying, or otherwise 6 | # using the SOFTWARE, you agree to be bound by the terms of that 7 | # LICENSE. 8 | 9 | 10 | if [ ! -f configure ]; then 11 | vers=`autoreconf --version | head -1` 12 | echo "Using" $vers 13 | 14 | mkdir -p m4 15 | 16 | autoreconf --install 17 | 18 | if [ ! -f configure ]; then 19 | echo "Failed to create configure script" 20 | exit 1 21 | fi 22 | fi 23 | 24 | echo "Creating build directory ..." 25 | mkdir -p build 26 | 27 | echo "Setup is complete. To build libslax:" 28 | 29 | echo " 1) Type 'cd build ; ../configure' to configure libslax" 30 | echo " 2) Type 'make' to build libslax" 31 | echo " 3) Type 'make install' to install libslax" 32 | 33 | exit 0 34 | -------------------------------------------------------------------------------- /build/.create: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/build/.create -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # Copyright 2014, Juniper Networks, Inc. 5 | # All rights reserved. 6 | # This SOFTWARE is licensed under the LICENSE provided in the 7 | # ../Copyright file. By downloading, installing, copying, or otherwise 8 | # using the SOFTWARE, you agree to be bound by the terms of that 9 | # LICENSE. 10 | 11 | doc docs: xolint-errors.rst html 12 | 13 | # 14 | # The contents of xolint.rst is generated based on xolint.pl, since we 15 | # really want this to be self-documenting. But readthedocs.org needs this 16 | # data to be _in_ repo. So we generate this file on command only, and 17 | # the developer needs to commit any changes. 18 | # 19 | 20 | xolint-errors.rst: ${top_srcdir}/xolint/xolint.pl 21 | perl ${top_srcdir}/xolint/xolint.pl -D > ${top_srcdir}/doc/xolint-errors.rst 22 | 23 | SPHINX = python3 -msphinx 24 | 25 | html sphinx sphinx-html: 26 | ${SPHINX} -M html ${srcdir} . -N -E 27 | 28 | singlehtml: 29 | ${SPHINX} -M singlehtml ${srcdir} . -N -E 30 | 31 | CLEANDIRS= doctrees html 32 | 33 | clean-local: 34 | ${RM} -fr ${CLEANDIRS} 35 | 36 | -------------------------------------------------------------------------------- /doc/_templates/localtoc.html: -------------------------------------------------------------------------------- 1 | {# 2 | basic/localtoc.html 3 | ~~~~~~~~~~~~~~~~~~~ 4 | 5 | Sphinx sidebar template: local table of contents. 6 | 7 | :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. 8 | :license: BSD, see LICENSE for details. 9 | #} 10 | {%- if display_toc %} 11 |

{{ _('On This Page') }}

12 | {{ toc }} 13 |

{{ _('Full Documentation') }}

14 | {%- endif %} 15 | -------------------------------------------------------------------------------- /doc/index.rst: -------------------------------------------------------------------------------- 1 | .. # 2 | # Copyright (c) 2014, Juniper Networks, Inc. 3 | # All rights reserved. 4 | # This SOFTWARE is licensed under the LICENSE provided in the 5 | # ../Copyright file. By downloading, installing, copying, or 6 | # using the SOFTWARE, you agree to be bound by the terms of that 7 | # LICENSE. 8 | # Phil Shafer, July 2014 9 | # 10 | 11 | .. default-role:: code 12 | 13 | libxo - A Library for Generating Text, XML, JSON, and HTML Output 14 | =================================================================== 15 | 16 | The libxo library allows an application to generate text, XML, JSON, 17 | and HTML output, suitable for both command line use and for web 18 | applications. The application decides at run time which output style 19 | should be produced. By using libxo, a single source code path can 20 | emit multiple styles of output using command line options to select 21 | the style, along with optional behaviors. libxo includes support for 22 | multiple output streams, pluralization, color, syslog, 23 | :manpage:`humanized(3)` output, internationalization, and UTF-8. The 24 | library aims to minimize the cost of migrating code to libxo. 25 | 26 | libxo ships as part of FreeBSD. 27 | 28 | .. toctree:: 29 | :maxdepth: 3 30 | :caption: Documentation Contents: 31 | 32 | intro 33 | getting 34 | formatting 35 | options 36 | format-strings 37 | field-roles 38 | field-modifiers 39 | field-formatting 40 | api 41 | encoders 42 | xo 43 | xolint 44 | xohtml 45 | xopo 46 | faq 47 | howto 48 | example 49 | 50 | Indices and tables 51 | ================== 52 | 53 | * :ref:`genindex` 54 | * :ref:`search` 55 | -------------------------------------------------------------------------------- /doc/top-link.html.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

The current libxo version is @LIBXO_VERSION@.

8 | 9 | 10 | -------------------------------------------------------------------------------- /doc/xohtml.rst: -------------------------------------------------------------------------------- 1 | .. index:: xohtml 2 | 3 | .. _xohtml: 4 | 5 | xohtml 6 | ====== 7 | 8 | `xohtml` is a tool for turning the output of libxo-enabled commands into 9 | html files suitable for display in modern HTML web browsers. It can 10 | be used to test and debug HTML output, as well as to make the user 11 | ache to escape the world of '70s terminal devices. 12 | 13 | `xohtml` is given a command, either on the command line or via the "-c" 14 | option. If not command is given, standard input is used. The 15 | command's output is wrapped in HTML tags, with references to 16 | supporting CSS and Javascript files, and written to standard output or 17 | the file given in the "-f" option. The "-b" option can be used to 18 | provide an alternative base path for the support files: 19 | 20 | ============== =================================================== 21 | Option Meaning 22 | ============== =================================================== 23 | -b Base path for finding css/javascript files 24 | -c Command to execute 25 | -f Output file name 26 | ============== =================================================== 27 | 28 | The "-c" option takes a full command with arguments, including 29 | any libxo options needed to generate html (`--libxo=html`). This 30 | value must be quoted if it consists of multiple tokens. 31 | -------------------------------------------------------------------------------- /doc/xolint.rst: -------------------------------------------------------------------------------- 1 | ====== 2 | xolint 3 | ====== 4 | 5 | `xolint` is a tool for reporting common mistakes in format strings 6 | in source code that invokes `xo_emit`. It allows these errors 7 | to be diagnosed at build time, rather than waiting until runtime. 8 | 9 | `xolint` takes the one or more C files as arguments, and reports 10 | and errors, warning, or informational messages as needed: 11 | 12 | ============ =================================================== 13 | Option Meaning 14 | ============ =================================================== 15 | -c Invoke 'cpp' against the input file 16 | -C Flags that are passed to 'cpp 17 | -d Enable debug output 18 | -D Generate documentation for all xolint messages 19 | -I Generate info table code 20 | -p Print the offending lines after the message 21 | -V Print vocabulary of all field names 22 | -X Extract samples from xolint, suitable for testing 23 | ============ =================================================== 24 | 25 | The output message will contain the source filename and line number, the 26 | class of the message, the message, and, if -p is given, the 27 | line that contains the error:: 28 | 29 | % xolint -t xolint.c 30 | xolint.c: 16: error: anchor format should be "%d" 31 | 16 xo_emit("{[:/%s}"); 32 | 33 | The "-I" option will generate a table of `xo_info_t`_ structures, 34 | suitable for inclusion in source code. 35 | 36 | .. _xo_info_t: :ref:`field-information` 37 | 38 | The "-V" option does not report errors, but prints a complete list of 39 | all field names, sorted alphabetically. The output can help spot 40 | inconsistencies and spelling errors. 41 | -------------------------------------------------------------------------------- /doc/xopo.rst: -------------------------------------------------------------------------------- 1 | 2 | xopo 3 | ==== 4 | 5 | The `xopo` utility filters ".pot" files generated by the 6 | :manpage:`xgettext(1)` utility to remove formatting information 7 | suitable for use with the "{G:}" modifier. This means that when the 8 | developer changes the formatting portion of the field definitions, or 9 | the fields modifiers, the string passed to :manpage:`gettext(3)` is 10 | unchanged, avoiding the expense of updating any existing translation 11 | files (".po" files). 12 | 13 | The syntax for the xopo command is one of two forms; it can be used as 14 | a filter for processing a .po or .pot file, rewriting the "*msgid*" 15 | strings with a simplified message string. In this mode, the input is 16 | either standard input or a file given by the "-f" option, and the 17 | output is either standard output or a file given by the "-o" option. 18 | 19 | In the second mode, a simple message given using the "-s" option on 20 | the command, and the simplified version of that message is printed on 21 | stdout: 22 | 23 | =========== ================================= 24 | Option Meaning 25 | =========== ================================= 26 | -o Output file name 27 | -f Use the given .po file as input 28 | -s Simplify a format string 29 | =========== ================================= 30 | 31 | :: 32 | 33 | EXAMPLE: 34 | % xopo -s "There are {:count/%u} {:event/%.6s} events\\n" 35 | There are {:count} {:event} events\\n 36 | 37 | % xgettext --default-domain=foo --no-wrap \\ 38 | --add-comments --keyword=xo_emit --keyword=xo_emit_h \\ 39 | --keyword=xo_emit_warn -C -E -n --foreign-user \\ 40 | -o foo.pot.raw foo.c 41 | % xopo -f foo.pot.raw -o foo.pot 42 | 43 | Use of the `--no-wrap` option for `xgettext` is required to 44 | ensure that incoming msgid strings are not wrapped across multiple 45 | lines. 46 | -------------------------------------------------------------------------------- /encoder/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015-2019, Juniper Networks, Inc. 3 | # All rights reserved. 4 | # This SOFTWARE is licensed under the LICENSE provided in the 5 | # ../Copyright file. By downloading, installing, copying, or otherwise 6 | # using the SOFTWARE, you agree to be bound by the terms of that 7 | # LICENSE. 8 | 9 | SUBDIRS = \ 10 | cbor \ 11 | csv \ 12 | test 13 | 14 | if LIBXO_NEED_FILTERS 15 | SUBDIRS += fullpath 16 | endif 17 | -------------------------------------------------------------------------------- /encoder/cbor/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # Copyright 2015, Juniper Networks, Inc. 5 | # All rights reserved. 6 | # This SOFTWARE is licensed under the LICENSE provided in the 7 | # ../Copyright file. By downloading, installing, copying, or otherwise 8 | # using the SOFTWARE, you agree to be bound by the terms of that 9 | # LICENSE. 10 | 11 | if LIBXO_WARNINGS_HIGH 12 | LIBXO_WARNINGS = HIGH 13 | endif 14 | if HAVE_GCC 15 | GCC_WARNINGS = yes 16 | endif 17 | include ${top_srcdir}/warnings.mk 18 | 19 | enc_cborincdir = ${includedir}/libxo 20 | 21 | AM_CFLAGS = \ 22 | -I${top_srcdir}/libxo \ 23 | -I${top_builddir}/libxo \ 24 | ${WARNINGS} 25 | 26 | LIBNAME = libenc_cbor 27 | pkglib_LTLIBRARIES = libenc_cbor.la 28 | LIBS = \ 29 | -L${top_builddir}/libxo -lxo 30 | 31 | LDADD = ${top_builddir}/libxo/libxo.la 32 | 33 | libenc_cbor_la_SOURCES = \ 34 | enc_cbor.c 35 | 36 | pkglibdir = ${XO_ENCODERDIR} 37 | 38 | UGLY_NAME = cbor.enc 39 | 40 | install-exec-hook: 41 | @DLNAME=`sh -c '. ./libenc_cbor.la ; echo $$dlname'` ; \ 42 | if [ x"$$DLNAME" = x ]; \ 43 | then DLNAME=${LIBNAME}.${XO_LIBEXT}; fi ; \ 44 | if [ "$(build_os)" = "cygwin" ]; \ 45 | then DLNAME="../bin/$$DLNAME"; fi ; \ 46 | echo Install link $$DLNAME "->" ${UGLY_NAME} "..." ; \ 47 | mkdir -p ${DESTDIR}${XO_ENCODERDIR} ; \ 48 | cd ${DESTDIR}${XO_ENCODERDIR} \ 49 | && chmod +w . \ 50 | && rm -f ${UGLY_NAME} \ 51 | && ${LN_S} $$DLNAME ${UGLY_NAME} 52 | -------------------------------------------------------------------------------- /encoder/csv/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # Copyright 2015-2019, Juniper Networks, Inc. 5 | # All rights reserved. 6 | # This SOFTWARE is licensed under the LICENSE provided in the 7 | # ../Copyright file. By downloading, installing, copying, or otherwise 8 | # using the SOFTWARE, you agree to be bound by the terms of that 9 | # LICENSE. 10 | 11 | if LIBXO_WARNINGS_HIGH 12 | LIBXO_WARNINGS = HIGH 13 | endif 14 | if HAVE_GCC 15 | GCC_WARNINGS = yes 16 | endif 17 | include ${top_srcdir}/warnings.mk 18 | 19 | enc_csvincdir = ${includedir}/libxo 20 | 21 | AM_CFLAGS = \ 22 | -I${top_srcdir}/libxo \ 23 | -I${top_builddir}/libxo \ 24 | ${WARNINGS} 25 | 26 | LIBNAME = libenc_csv 27 | pkglib_LTLIBRARIES = libenc_csv.la 28 | LIBS = \ 29 | -L${top_builddir}/libxo -lxo 30 | 31 | LDADD = ${top_builddir}/libxo/libxo.la 32 | 33 | libenc_csv_la_SOURCES = \ 34 | enc_csv.c 35 | 36 | pkglibdir = ${XO_ENCODERDIR} 37 | 38 | UGLY_NAME = csv.enc 39 | 40 | install-exec-hook: 41 | @DLNAME=`sh -c '. ./libenc_csv.la ; echo $$dlname'` ; \ 42 | if [ x"$$DLNAME" = x ]; \ 43 | then DLNAME=${LIBNAME}.${XO_LIBEXT}; fi ; \ 44 | if [ "$(build_os)" = "cygwin" ]; \ 45 | then DLNAME="../bin/$$DLNAME"; fi ; \ 46 | echo Install link $$DLNAME "->" ${UGLY_NAME} "..." ; \ 47 | mkdir -p ${DESTDIR}${XO_ENCODERDIR} ; \ 48 | cd ${DESTDIR}${XO_ENCODERDIR} \ 49 | && chmod +w . \ 50 | && rm -f ${UGLY_NAME} \ 51 | && ${LN_S} $$DLNAME ${UGLY_NAME} 52 | -------------------------------------------------------------------------------- /encoder/fullpath/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # Copyright 2015, Juniper Networks, Inc. 5 | # All rights reserved. 6 | # This SOFTWARE is licensed under the LICENSE provided in the 7 | # ../Copyright file. By downloading, installing, copying, or otherwise 8 | # using the SOFTWARE, you agree to be bound by the terms of that 9 | # LICENSE. 10 | 11 | if LIBXO_WARNINGS_HIGH 12 | LIBXO_WARNINGS = HIGH 13 | endif 14 | if HAVE_GCC 15 | GCC_WARNINGS = yes 16 | endif 17 | include ${top_srcdir}/warnings.mk 18 | 19 | enc_fullpathincdir = ${includedir}/libxo 20 | 21 | AM_CFLAGS = \ 22 | -I${top_srcdir}/libxo \ 23 | -I${top_builddir}/libxo \ 24 | ${WARNINGS} 25 | 26 | LIBNAME = libenc_fullpath 27 | pkglib_LTLIBRARIES = libenc_fullpath.la 28 | LIBS = \ 29 | -L${top_builddir}/libxo -lxo 30 | 31 | LDADD = ${top_builddir}/libxo/libxo.la 32 | 33 | libenc_fullpath_la_SOURCES = \ 34 | enc_fullpath.c 35 | 36 | pkglibdir = ${XO_ENCODERDIR} 37 | 38 | UGLY_NAME = fullpath.enc 39 | 40 | install-exec-hook: 41 | @DLNAME=`sh -c '. ./libenc_fullpath.la ; echo $$dlname'` ; \ 42 | if [ x"$$DLNAME" = x ]; \ 43 | then DLNAME=${LIBNAME}.${XO_LIBEXT}; fi ; \ 44 | if [ "$(build_os)" = "cygwin" ]; \ 45 | then DLNAME="../bin/$$DLNAME"; fi ; \ 46 | echo Install link $$DLNAME "->" ${UGLY_NAME} "..." ; \ 47 | mkdir -p ${DESTDIR}${XO_ENCODERDIR} ; \ 48 | cd ${DESTDIR}${XO_ENCODERDIR} \ 49 | && chmod +w . \ 50 | && rm -f ${UGLY_NAME} \ 51 | && ${LN_S} $$DLNAME ${UGLY_NAME} 52 | -------------------------------------------------------------------------------- /encoder/test/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # Copyright 2015, Juniper Networks, Inc. 5 | # All rights reserved. 6 | # This SOFTWARE is licensed under the LICENSE provided in the 7 | # ../Copyright file. By downloading, installing, copying, or otherwise 8 | # using the SOFTWARE, you agree to be bound by the terms of that 9 | # LICENSE. 10 | 11 | if LIBXO_WARNINGS_HIGH 12 | LIBXO_WARNINGS = HIGH 13 | endif 14 | if HAVE_GCC 15 | GCC_WARNINGS = yes 16 | endif 17 | include ${top_srcdir}/warnings.mk 18 | 19 | enc_testincdir = ${includedir}/libxo 20 | 21 | AM_CFLAGS = \ 22 | -I${top_srcdir}/libxo \ 23 | -I${top_builddir}/libxo \ 24 | ${WARNINGS} 25 | 26 | LIBNAME = libenc_test 27 | pkglib_LTLIBRARIES = libenc_test.la 28 | LIBS = \ 29 | -L${top_builddir}/libxo -lxo 30 | 31 | LDADD = ${top_builddir}/libxo/libxo.la 32 | 33 | libenc_test_la_SOURCES = \ 34 | enc_test.c 35 | 36 | pkglibdir = ${XO_ENCODERDIR} 37 | 38 | UGLY_NAME = test.enc 39 | 40 | install-exec-hook: 41 | @DLNAME=`sh -c '. ./libenc_test.la ; echo $$dlname'` ; \ 42 | if [ x"$$DLNAME" = x ]; \ 43 | then DLNAME=${LIBNAME}.${XO_LIBEXT}; fi ; \ 44 | if [ "$(build_os)" = "cygwin" ]; \ 45 | then DLNAME="../bin/$$DLNAME"; fi ; \ 46 | echo Install link $$DLNAME "->" ${UGLY_NAME} "..." ; \ 47 | mkdir -p ${DESTDIR}${XO_ENCODERDIR} ; \ 48 | cd ${DESTDIR}${XO_ENCODERDIR} \ 49 | && chmod +w . \ 50 | && rm -f ${UGLY_NAME} \ 51 | && ${LN_S} $$DLNAME ${UGLY_NAME} 52 | -------------------------------------------------------------------------------- /encoder/test/enc_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015, Juniper Networks, Inc. 3 | * All rights reserved. 4 | * This SOFTWARE is licensed under the LICENSE provided in the 5 | * ../Copyright file. By downloading, installing, copying, or otherwise 6 | * using the SOFTWARE, you agree to be bound by the terms of that 7 | * LICENSE. 8 | * Phil Shafer, August 2015 9 | */ 10 | 11 | #include "xo.h" 12 | #include "xo_encoder.h" 13 | 14 | static int 15 | test_handler (XO_ENCODER_HANDLER_ARGS) 16 | { 17 | flags &= ~XOF_UTF8; /* Skip this flag, since it depends on terminal */ 18 | 19 | printf("op %s: [%s] [%s] [%#llx]\n", xo_encoder_op_name(op), 20 | name ?: "", value ?: "", (unsigned long long) flags); 21 | 22 | return 0; 23 | } 24 | 25 | static int 26 | test_wb_marker (XO_WHITEBOARD_FUNC_ARGS) 27 | { 28 | printf("marker %s\n", xo_whiteboard_op_name(op)); 29 | 30 | return 0; 31 | } 32 | 33 | int 34 | xo_encoder_library_init (XO_ENCODER_INIT_ARGS) 35 | { 36 | arg->xei_version = XO_ENCODER_VERSION; 37 | arg->xei_handler = test_handler; 38 | arg->xei_wb_marker = test_wb_marker; 39 | 40 | return 0; 41 | } 42 | -------------------------------------------------------------------------------- /libxo/add.man.in: -------------------------------------------------------------------------------- 1 | .Sh ADDITIONAL DOCUMENTATION 2 | .Fx 3 | uses 4 | .Nm libxo 5 | version @LIBXO_VERSION@. 6 | Complete documentation can be found on github: 7 | .Bd -literal -offset indent 8 | https://juniper.github.io/libxo/@LIBXO_VERSION@/html/index.html 9 | .Ed 10 | .Pp 11 | .Nm libxo 12 | lives on github as: 13 | .Bd -literal -offset indent 14 | https://github.com/Juniper/libxo 15 | .Ed 16 | .Pp 17 | The latest release of 18 | .Nm libxo 19 | is available at: 20 | .Bd -literal -offset indent 21 | https://github.com/Juniper/libxo/releases 22 | .Ed 23 | .Sh HISTORY 24 | The 25 | .Nm libxo 26 | library was added in 27 | .Fx 11.0 . 28 | .Sh AUTHOR 29 | Phil Shafer 30 | -------------------------------------------------------------------------------- /libxo/gen-wide.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | FILE=$1 4 | 5 | SYMBOLS=" 6 | xo_buffer_s 7 | xo_buffer_t 8 | xo_stack_s 9 | xo_stack_t 10 | xo_handle_s 11 | xo_handle_t 12 | xo_default_handle 13 | xo_default_inited 14 | xo_realloc 15 | xo_free 16 | xo_write_to_file 17 | xo_close_file 18 | xo_buf_init 19 | xo_init_handle 20 | xo_default_init 21 | xo_buf_has_room 22 | xo_printf 23 | xo_escape_xml 24 | xo_escape_json 25 | xo_buf_append 26 | xo_buf_escape 27 | xo_data_append 28 | xo_data_escape 29 | xo_default 30 | xo_indent 31 | xo_warn 32 | xo_create 33 | xo_create_to_file 34 | xo_destroy 35 | xo_set_style 36 | xo_set_flags 37 | xo_set_info 38 | xo_set_formatter 39 | xo_clear_flags 40 | xo_buf_indent 41 | xo_line_ensure_open 42 | xo_line_close 43 | xo_info_compare 44 | xo_info_find 45 | xo_format_data 46 | xo_buf_append_div 47 | xo_format_text 48 | xo_format_label 49 | xo_format_title 50 | xo_format_prep 51 | xo_format_value 52 | xo_format_decoration 53 | xo_format_padding 54 | xo_do_emit 55 | xo_emit_hv 56 | xo_emit_h 57 | xo_emit 58 | xo_attr_hv 59 | xo_attr_h 60 | xo_attr 61 | xo_depth_change 62 | xo_open_container_h 63 | xo_open_container 64 | xo_close_container_h 65 | xo_close_container 66 | xo_open_list_h 67 | xo_open_list 68 | xo_close_list_h 69 | xo_close_list 70 | xo_open_instance_h 71 | xo_open_instance 72 | xo_close_instance_h 73 | xo_close_instance 74 | xo_set_writer 75 | xo_set_allocator 76 | " 77 | -------------------------------------------------------------------------------- /libxo/xo_error.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_error 15 | .Nd generate simple error messages in multiple output styles 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Fn xo_error "const char *fmt" "..." 22 | .Sh DESCRIPTION 23 | Use the 24 | .Fn xo_error 25 | function to generate error messages to standard error. 26 | The 27 | .Fa fmt 28 | argument is a string containing printf-style formatting 29 | instructions that describe the remaining arguments. 30 | .Pp 31 | When converting an application to 32 | .Nm libxo , 33 | one can replace 34 | .Em "fprintf(stderr,...)" 35 | calls with 36 | .Fn xo_error 37 | calls. 38 | .Sh SEE ALSO 39 | .Xr printf 3 , 40 | .Xr xo_emit 3 , 41 | .Xr libxo 3 42 | .Sh HISTORY 43 | The 44 | .Nm libxo 45 | library first appeared in 46 | .Fx 11.0 . 47 | .Sh AUTHORS 48 | .Nm libxo 49 | was written by 50 | .An Phil Shafer Aq Mt phil@freebsd.org . 51 | 52 | -------------------------------------------------------------------------------- /libxo/xo_finish.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_finish , xo_finish_h 15 | .Nd finish formatting output 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft xo_ssize_t 21 | .Fn xo_finish "void" 22 | .Ft xo_ssize_t 23 | .Fn xo_finish_h "xo_handle_t *xop" 24 | .Sh DESCRIPTION 25 | When the program is ready to exit or close a handle, a call to 26 | .Fn xo_finish 27 | is required. 28 | This flushes any buffered data, closes 29 | open 30 | .Nm libxo 31 | constructs, and completes any pending operations. 32 | .Pp 33 | Calling this function is 34 | .Em vital 35 | to the proper operation of libxo, 36 | especially for the non-TEXT output styles. 37 | .Sh SEE ALSO 38 | .Xr xo_emit 3 , 39 | .Xr libxo 3 40 | .Sh HISTORY 41 | The 42 | .Nm libxo 43 | library first appeared in 44 | .Fx 11.0 . 45 | .Sh AUTHORS 46 | .Nm libxo 47 | was written by 48 | .An Phil Shafer Aq Mt phil@freebsd.org . 49 | 50 | -------------------------------------------------------------------------------- /libxo/xo_flush.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_flush , xo_flush_h 15 | .Nd flush formatted output from libxo handle 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft xo_ssize_t 21 | .Fn xo_flush "void" 22 | .Ft xo_ssize_t 23 | .Fn xo_flush_h "xo_handle_t *handle" 24 | .Sh DESCRIPTION 25 | .Nm libxo 26 | buffers data, both for performance and consistency, but also to 27 | allow some advanced features to work properly. 28 | At various times, the 29 | caller may wish to flush any data buffered within the library. 30 | The 31 | .Fn xo_flush 32 | function is used for this. 33 | .Sh SEE ALSO 34 | .Xr xo_emit 3 , 35 | .Xr libxo 3 36 | .Sh HISTORY 37 | The 38 | .Nm libxo 39 | library first appeared in 40 | .Fx 11.0 . 41 | .Sh AUTHORS 42 | .Nm libxo 43 | was written by 44 | .An Phil Shafer Aq Mt phil@freebsd.org . 45 | 46 | -------------------------------------------------------------------------------- /libxo/xo_no_setlocale.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_no_setlocale 15 | .Nd prevent implicit call to setlocale 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Fn xo_no_setlocale "void" 22 | .Sh DESCRIPTION 23 | .Nm libxo 24 | automatically initializes the locale based on the setting of the 25 | environment variables 26 | .Ev LC_CTYPE , 27 | .Ev LANG , 28 | and 29 | .Ev LC_ALL . 30 | The first of this 31 | list of variables is used and if none of the variables are set, the locale 32 | defaults to 33 | .Em UTF-8 . 34 | The caller may wish to avoid this behavior, and 35 | can do so by calling the 36 | .Fn xo_no_setlocale 37 | function. 38 | .Sh SEE ALSO 39 | .Xr xo_emit 3 , 40 | .Xr xo_open_container 3 , 41 | .Xr xo_open_list 3 , 42 | .Xr xo_format 5 , 43 | .Xr libxo 3 44 | .Sh HISTORY 45 | The 46 | .Nm libxo 47 | library first appeared in 48 | .Fx 11.0 . 49 | .Sh AUTHORS 50 | .Nm libxo 51 | was written by 52 | .An Phil Shafer Aq Mt phil@freebsd.org . 53 | 54 | -------------------------------------------------------------------------------- /libxo/xo_set_allocator.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_allocator 15 | .Nd set allocation functions for libxo 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Sy typedef void *(*xo_realloc_func_t)(void *, size_t); 21 | .Pp 22 | .Sy typedef void (*xo_free_func_t)(void *); 23 | .Ft void 24 | .Fn xo_set_allocator "xo_realloc_func_t realloc_func" "xo_free_func_t free_func" 25 | .Sh DESCRIPTION 26 | The 27 | .Fn xo_set_allocator 28 | function allows 29 | .Nm libxo 30 | to be used in environments 31 | where the standard 32 | .Xr realloc 3 33 | and 34 | .Xr free 3 35 | functions are not available. 36 | .Pp 37 | .Fa realloc_func 38 | should expect the same arguments as 39 | .Xr realloc 3 40 | and return 41 | a pointer to memory following the same convention. 42 | .Fa free_func 43 | will receive the same argument as 44 | .Xr free 3 45 | and should release it, as appropriate for the environment. 46 | .Pp 47 | By default, the standard 48 | .Xr realloc 3 49 | and 50 | .Xr free 3 51 | functions are used. 52 | .Sh SEE ALSO 53 | .Xr xo_emit 3 , 54 | .Xr libxo 3 55 | .Sh HISTORY 56 | The 57 | .Nm libxo 58 | library first appeared in 59 | .Fx 11.0 . 60 | .Sh AUTHORS 61 | .Nm libxo 62 | was written by 63 | .An Phil Shafer Aq Mt phil@freebsd.org . 64 | 65 | -------------------------------------------------------------------------------- /libxo/xo_set_options.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_options 15 | .Nd change options used by a libxo handle 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft int 21 | .Fn xo_set_options "xo_handle_t *xop" "const char *input" 22 | .Sh DESCRIPTION 23 | The 24 | .Fn xo_set_options 25 | function accepts a comma-separated list of styles 26 | and flags and enables them for a specific handle. 27 | The options are identical to those listed in 28 | .Xr xo_parse_args 3 . 29 | .Sh SEE ALSO 30 | .Xr xo_emit 3 , 31 | .Xr libxo 3 32 | .Sh HISTORY 33 | The 34 | .Nm libxo 35 | library first appeared in 36 | .Fx 11.0 . 37 | .Sh AUTHORS 38 | .Nm libxo 39 | was written by 40 | .An Phil Shafer Aq Mt phil@freebsd.org . 41 | 42 | -------------------------------------------------------------------------------- /libxo/xo_set_style.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_style , xo_set_style_name 15 | .Nd set the output style for a libxo handle 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Fn xo_set_style "xo_handle_t *handle" "unsigned style" 22 | .Ft int 23 | .Fn xo_set_style_name "xo_handle_t *handle" "const char *style" 24 | .Sh DESCRIPTION 25 | Use the 26 | .Fn xo_set_style 27 | function to set the output style for a handle. 28 | To use the default handle, pass a 29 | .Dv NULL 30 | handle. 31 | The set of output styles used by 32 | .Nm libxo 33 | is: 34 | .Bl -column "XO_STYLE_TEXT12" 35 | .It Sy "Flag Description" 36 | .It "XO_STYLE_TEXT Traditional text output" 37 | .It "XO_STYLE_XML XML encoded data" 38 | .It "XO_STYLE_JSON JSON encoded data" 39 | .It "XO_STYLE_HTML HTML encoded data" 40 | .El 41 | .Pp 42 | The 43 | .Fn xo_set_style_name 44 | function can be used to set the style based on a name 45 | encoded as a string. 46 | The name can be any of the styles: "text", "xml", "json", or "html". 47 | .Bd -literal -offset indent 48 | EXAMPLE: 49 | xo_set_style_name(NULL, "html"); 50 | .Ed 51 | .Sh SEE ALSO 52 | .Xr xo_emit 3 , 53 | .Xr libxo 3 54 | .Sh HISTORY 55 | The 56 | .Nm libxo 57 | library first appeared in 58 | .Fx 11.0 . 59 | .Sh AUTHORS 60 | .Nm libxo 61 | was written by 62 | .An Phil Shafer Aq Mt phil@freebsd.org . 63 | 64 | -------------------------------------------------------------------------------- /libxo/xo_set_syslog_enterprise_id.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2015, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2015 9 | .\" 10 | .Dd July 20, 2015 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_syslog_enterprise_id 15 | .Nd Set the enterprise identifier for syslog content 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Fn xo_set_syslog_enterprise_id "unsigned short eid" 22 | .Ft void 23 | .Sh DESCRIPTION 24 | The 25 | .Fn xo_set_syslog_enterprise_id 26 | function records an enterprise identifier used for subsequent 27 | .Xr xo_syslog 3 28 | calls. 29 | Enterprise IDs are 30 | defined by IANA, the Internet Assigned Numbers Authority: 31 | .Bd -literal -offset indent 32 | https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers 33 | .Ed 34 | .Sh SEE ALSO 35 | .Xr xo_syslog 3 , 36 | .Xr libxo 3 37 | .Sh HISTORY 38 | The 39 | .Nm libxo 40 | library first appeared in 41 | .Fx 11.0 . 42 | .Sh AUTHORS 43 | .Nm libxo 44 | was written by 45 | .An Phil Shafer Aq Mt phil@freebsd.org . 46 | 47 | -------------------------------------------------------------------------------- /libxo/xo_set_version.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2015, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_version , xo_set_version_h 15 | .Nd record content-version information in encoded output 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Fn xo_set_version "const char *version" 22 | .Ft void 23 | .Fn xo_set_version_h "xo_handle_t *xop" "const char *version" 24 | .Sh DESCRIPTION 25 | The 26 | .Nm xo_set_version 27 | function records a version number to be emitted as 28 | part of the data for encoding styles (XML and JSON). 29 | This version number is suitable for tracking changes in the content, 30 | allowing a user of the data to discern which version of the data model 31 | is in use. 32 | .Sh SEE ALSO 33 | .Xr xo_emit 3 , 34 | .Xr libxo 3 35 | .Sh HISTORY 36 | The 37 | .Nm libxo 38 | library first appeared in 39 | .Fx 11.0 . 40 | .Sh AUTHORS 41 | .Nm libxo 42 | was written by 43 | .An Phil Shafer Aq Mt phil@freebsd.org . 44 | 45 | -------------------------------------------------------------------------------- /libxo/xo_set_writer.3: -------------------------------------------------------------------------------- 1 | .\" # 2 | .\" # Copyright (c) 2014, Juniper Networks, Inc. 3 | .\" # All rights reserved. 4 | .\" # This SOFTWARE is licensed under the LICENSE provided in the 5 | .\" # ../Copyright file. By downloading, installing, copying, or 6 | .\" # using the SOFTWARE, you agree to be bound by the terms of that 7 | .\" # LICENSE. 8 | .\" # Phil Shafer, July 2014 9 | .\" 10 | .Dd December 4, 2014 11 | .Dt LIBXO 3 12 | .Os 13 | .Sh NAME 14 | .Nm xo_set_writer 15 | .Nd set custom writer functions for a libxo handle 16 | .Sh LIBRARY 17 | .Lb libxo 18 | .Sh SYNOPSIS 19 | .In libxo/xo.h 20 | .Ft void 21 | .Sy typedef xo_ssize_t (*xo_write_func_t)(void *, const char *); 22 | .Pp 23 | .Sy typedef void (*xo_close_func_t)(void *); 24 | .Pp 25 | .Sy typedef int (*xo_flush_func_t)(void *); 26 | .Fn xo_set_writer "xo_handle_t *handle" "void *opaque" 27 | "xo_write_func_t write_func" 28 | "xo_close_func_t close_func" 29 | "xo_flush_func_t flush_func" 30 | .Sh DESCRIPTION 31 | The 32 | .Fn xo_set_writer 33 | function allows custom 34 | .Dq write 35 | functions 36 | which can tailor how 37 | .Nm libxo 38 | writes data. 39 | An 40 | .Fa opaque 41 | argument is 42 | recorded and passed back to the 43 | .Fa write_func 44 | function, allowing the function 45 | to acquire context information. 46 | The 47 | .Fa close_func 48 | function can 49 | release this opaque data and any other resources as needed. 50 | The 51 | .Fa flush_func 52 | function should 53 | flush any pending data associated with the opaque pointer. 54 | .Sh SEE ALSO 55 | .Xr xo_emit 3 , 56 | .Xr libxo 3 57 | .Sh HISTORY 58 | The 59 | .Nm libxo 60 | library first appeared in 61 | .Fx 11.0 . 62 | .Sh AUTHORS 63 | .Nm libxo 64 | was written by 65 | .An Phil Shafer Aq Mt phil@freebsd.org . 66 | 67 | -------------------------------------------------------------------------------- /packaging/libxo.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | 7 | Name: libxo 8 | Version: @LIBXO_VERSION@ 9 | Description: The XML Output Library 10 | Libs: -L@XO_LIBDIR@ @XO_LIBS@ 11 | Cflags: -I@XO_INCLUDEDIR@ 12 | -------------------------------------------------------------------------------- /packaging/libxo.rb.base.in: -------------------------------------------------------------------------------- 1 | # 2 | # Homebrew formula file for libxo 3 | # https://github.com/mxcl/homebrew 4 | # 5 | 6 | require 'formula' 7 | 8 | class Libxo < Formula 9 | homepage 'https://github.com/Juniper/@PACKAGE_NAME@' 10 | url 'https://github.com/Juniper/@PACKAGE_NAME@/releases/download/@PACKAGE_VERSION@/@PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz' 11 | sha1 '__SHA1__' 12 | 13 | depends_on 'libtool' => :build 14 | 15 | def install 16 | system "./configure", "--disable-dependency-tracking", "--disable-silent-rules", 17 | "--prefix=#{prefix}" 18 | system "make", "install" 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /packaging/libxo.spec.in: -------------------------------------------------------------------------------- 1 | Name: @PACKAGE_NAME@ 2 | Version: @PACKAGE_VERSION@ 3 | Release: 1%{?dist} 4 | Summary: The libxo library 5 | 6 | Prefix: /usr 7 | 8 | Vendor: Juniper Networks, Inc. 9 | Packager: Phil Shafer 10 | License: BSD 11 | 12 | Group: Development/Libraries 13 | URL: https://github.com/Juniper/libxo 14 | Source0: https://github.com/Juniper/@PACKAGE_NAME@/releases/@PACKAGE_VERSION@/@PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz 15 | 16 | 17 | %description 18 | Welcome to libxo, a library that generates text, XML, JSON, and HTML 19 | from a single source code path. 20 | 21 | %prep 22 | %setup -q 23 | 24 | %build 25 | %configure 26 | make %{?_smp_mflags} 27 | 28 | %install 29 | rm -rf $RPM_BUILD_ROOT 30 | %make_install 31 | 32 | %clean 33 | rm -rf $RPM_BUILD_ROOT 34 | 35 | %post -p /sbin/ldconfig 36 | 37 | %files 38 | %{_bindir}/* 39 | %{_includedir}/libxo/* 40 | %{_libdir}/* 41 | %{_datadir}/doc/libxo/* 42 | %docdir %{_datadir}/doc/libxo/* 43 | %{_mandir}/*/* 44 | %docdir %{_mandir}/*/* 45 | -------------------------------------------------------------------------------- /tests/Makefile.am: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014, Juniper Networks, Inc. 3 | # All rights reserved. 4 | # This SOFTWARE is licensed under the LICENSE provided in the 5 | # ../Copyright file. By downloading, installing, copying, or otherwise 6 | # using the SOFTWARE, you agree to be bound by the terms of that 7 | # LICENSE. 8 | 9 | SUBDIRS = core utf8 xo 10 | 11 | if HAVE_GETTEXT 12 | SUBDIRS += gettext 13 | endif 14 | 15 | if LIBXO_NEED_FILTERS 16 | SUBDIRS += xpath 17 | endif 18 | 19 | test tests: 20 | @(cur=`pwd` ; for dir in $(SUBDIRS) ; do \ 21 | cd $$dir ; \ 22 | $(MAKE) tests ; \ 23 | cd $$cur ; \ 24 | done) 25 | 26 | accept: 27 | @(cur=`pwd` ; for dir in $(SUBDIRS) ; do \ 28 | cd $$dir ; \ 29 | $(MAKE) accept ; \ 30 | cd $$cur ; \ 31 | done) 32 | 33 | valgrind: 34 | @echo '## Running the regression tests under Valgrind' 35 | @echo '## Go get a cup of coffee it is gonna take a while ...' 36 | ${MAKE} VALGRIND='valgrind -q' tests 37 | -------------------------------------------------------------------------------- /tests/core/saved/test_01.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv1.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.Ecsv1.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv1.out: -------------------------------------------------------------------------------- 1 | sku,name,sold,in-stock,on-order 2 | GRO-000-415,gum,1412,54,10 3 | HRD-000-212,rope,85,4,2 4 | HRD-000-517,ladder,0,2,1 5 | HRD-000-632,bolt,4123,144,42 6 | GRO-000-2331,water,17,14,2 7 | GRO-000-415,gum,1412.0,54,10 8 | HRD-000-212,rope,85.0,4,2 9 | HRD-000-517,ladder,0,2,1 10 | HRD-000-632,bolt,4123.0,144,42 11 | GRO-000-2331,water,17.0,14,2 12 | GRO-000-533,fish,1321.0,45,1 13 | GRO-000-415,gum,1412,54,10 14 | HRD-000-212,rope,85,4,2 15 | HRD-000-517,ladder,0,2,1 16 | HRD-000-632,bolt,4123,144,42 17 | GRO-000-2331,water,17,14,2 18 | -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv2.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.Ecsv2.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv2.out: -------------------------------------------------------------------------------- 1 | GRO-000-415,gum,1412,54,10 2 | HRD-000-212,rope,85,4,2 3 | HRD-000-517,ladder,0,2,1 4 | HRD-000-632,bolt,4123,144,42 5 | GRO-000-2331,water,17,14,2 6 | GRO-000-415,gum,1412,54,10 7 | HRD-000-212,rope,85,4,2 8 | HRD-000-517,ladder,0,2,1 9 | HRD-000-632,bolt,4123,144,42 10 | GRO-000-2331,water,17,14,2 11 | -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv3.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.Ecsv3.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.Ecsv3.out: -------------------------------------------------------------------------------- 1 | sku,sold 2 | GRO-000-415,1412 3 | HRD-000-212,85 4 | HRD-000-517,0 5 | HRD-000-632,4123 6 | GRO-000-2331,17 7 | GRO-000-415,1412.0 8 | HRD-000-212,85.0 9 | HRD-000-517,0 10 | HRD-000-632,4123.0 11 | GRO-000-2331,17.0 12 | GRO-000-533,1321.0 13 | GRO-000-415,1412 14 | HRD-000-212,85 15 | HRD-000-517,0 16 | HRD-000-632,4123 17 | GRO-000-2331,17 18 | -------------------------------------------------------------------------------- /tests/core/saved/test_01.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_01.err -------------------------------------------------------------------------------- /tests/core/saved/test_01.out: -------------------------------------------------------------------------------- 1 | Item Total Sold In Stock On Order SKU 2 | gum 1412 54 10 GRO-000-415 3 | rope 85 4 2 HRD-000-212 4 | ladder 0 2 1 HRD-000-517 5 | bolt 4123 144 42 HRD-000-632 6 | water 17 14 2 GRO-000-2331 7 | 8 | 9 | Item 'gum': 10 | Total sold: 1412.0 11 | In stock: 54 12 | On order: 10 13 | SKU: GRO-000-415 14 | Item 'rope': 15 | Total sold: 85.0 16 | In stock: 4 17 | On order: 2 18 | SKU: HRD-000-212 19 | Item 'ladder': 20 | Total sold: 0 21 | In stock: 2 22 | On order: 1 23 | SKU: HRD-000-517 24 | Item 'bolt': 25 | Total sold: 4123.0 26 | In stock: 144 27 | On order: 42 28 | SKU: HRD-000-632 29 | Item 'water': 30 | Total sold: 17.0 31 | In stock: 14 32 | On order: 2 33 | SKU: GRO-000-2331 34 | Item 'fish': 35 | Total sold: 1321.0 36 | In stock: 45 37 | On order: 1 38 | SKU: GRO-000-533 39 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.E.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.H.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.HIPx.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.HP.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.J.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.J.out: -------------------------------------------------------------------------------- 1 | {"top": {"data": {"name":"em0","flags":"0x8843","name":"em0","flags":"0x8843","what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"granularity-lw":155,"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":"this is an warning"}, "__warning": {"message":"two more warnings"},"count":10, "long-long-test": {"lsize":8,"lval":-45,"usize":8,"uval":45,"lsize":8,"lval":-45,"usize":8,"uval":45},"value":123412341234,"test":4, "error": {"message":"Shut 'er down, Clancey! She's a-pumpin' mud! <>!,\"!<>\n"}, "error": {"message":"err message (1)"}, "error": {"message":"err message (2)\n"}, "error": {"message":"err message (1)\n"}, "error": {"message":"err message (2)\n"}}}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.JP.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.JPu.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.T.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | Shut 'er down, Clancey! She's a-pumpin' mud! <>!,"!<> 3 | err message (1)err message (2) 4 | err message (1) 5 | err message (2) 6 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.T.out: -------------------------------------------------------------------------------- 1 | em0 We are {emit}{ting} some braces 2 | abcdef 3 | abcdef: Bad file descriptor 4 | improper use of profanity; ten yard penalty; first down 5 | length abcdef 6 | close -1 returned Bad file descriptor good 7 | close -1 returned Bad fi good 8 | improper use of profanity; ten yard penalty; first down 9 | 20 30 40 file 10 | 0 bytes 11 | 1 byte 12 | 2 bytes 13 | 3 bytes 14 | 4 bytes 15 | Low/warn granularity: 155 mAh 16 | 10/20/30 mbufs <&> in use (current/cache/total) 17 | 50 miles from Boston 18 | 64k left out of 640kb 19 | 64k left out of 640kilobytes 20 | beforeworkingafter: 21 | string: 1011 22 | 1010 packets here/there/everywhere 23 | 1010 packets here/there/everywhere 24 | ( 15/20/125) 25 | ( 15/20/125) 26 | (15/20/125 ) 27 | (15/20/125 ) 28 | Humanize: 21, 57 K, 96M, 44M, 1.2G 29 | one two three 30 | (null) 31 | 1: 1000 2:test5000 3: ten-longx 4:xtest 32 | this is an error 33 | two more errors 34 | this is an warning 35 | two more warnings 36 | V1/V2 packets: 10 37 | a 8 long: -45 38 | a 8 ulong: 45 39 | a 8 long: -45 40 | a 8 ulong: 45 41 | 123412341234 42 | 0004 tries 43 | improper use of profanity; ten yard penalty; first down 44 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.X.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.XP.err: -------------------------------------------------------------------------------- 1 | test_02: key field emitted after normal value field: 'name' 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_02.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_02.err -------------------------------------------------------------------------------- /tests/core/saved/test_02.out: -------------------------------------------------------------------------------- 1 | Item Total Sold In Stock On Order SKU 2 | gum 1412 54 10 GRO-000-415 3 | rope 85 4 2 HRD-000-212 4 | ladder 0 2 1 HRD-000-517 5 | bolt 4123 144 42 HRD-000-632 6 | water 17 14 2 GRO-000-2331 7 | 8 | 9 | Item 'gum': 10 | Total sold: 1412.0 11 | In stock: 54 12 | On order: 10 13 | SKU: GRO-000-415 14 | Item 'rope': 15 | Total sold: 85.0 16 | In stock: 4 17 | On order: 2 18 | SKU: HRD-000-212 19 | Item 'ladder': 20 | Total sold: 0 21 | In stock: 2 22 | On order: 1 23 | SKU: HRD-000-517 24 | Item 'bolt': 25 | Total sold: 4123.0 26 | In stock: 144 27 | On order: 42 28 | SKU: HRD-000-632 29 | Item 'water': 30 | Total sold: 17.0 31 | In stock: 14 32 | On order: 2 33 | SKU: GRO-000-2331 34 | Item 'fish': 35 | Total sold: 1321.0 36 | In stock: 45 37 | On order: 1 38 | SKU: GRO-000-533 39 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.E.out: -------------------------------------------------------------------------------- 1 | op create: [test] [] [0] 2 | op open_container: [employees] [] [0x10] 3 | op open_list: [employee] [] [0] 4 | op close_list: [employee] [] [0] 5 | op string: [extra] [] [0] 6 | op open_list: [memory] [] [0] 7 | op open_instance: [memory] [] [0x10] 8 | op string: [type] [name] [0x80] 9 | op content: [in-use] [12345] [0] 10 | op content: [memory-use] [54321] [0] 11 | op string: [high-use] [-] [0] 12 | op content: [requests] [32145] [0] 13 | op close_instance: [memory] [] [0] 14 | op close_list: [memory] [] [0] 15 | op open_list: [employee] [] [0] 16 | op open_instance: [employee] [] [0x10] 17 | op string: [first-name] [Terry] [0x80] 18 | op string: [last-name] [Jones] [0x80] 19 | op content: [department] [660] [0] 20 | op close_instance: [employee] [] [0] 21 | op open_instance: [employee] [] [0x10] 22 | op string: [first-name] [Leslie] [0x80] 23 | op string: [last-name] [Patterson] [0x80] 24 | op content: [department] [341] [0] 25 | op close_instance: [employee] [] [0] 26 | op open_instance: [employee] [] [0x10] 27 | op string: [first-name] [Ashley] [0x80] 28 | op string: [last-name] [Smith] [0x80] 29 | op content: [department] [1440] [0] 30 | op close_instance: [employee] [] [0] 31 | op close_list: [employee] [] [0] 32 | op close_container: [employees] [] [0] 33 | op finish: [] [] [0] 34 | op flush: [] [] [0] 35 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.H.out: -------------------------------------------------------------------------------- 1 |
[
]
Type
InUse
MemUse
HighUse
Requests
Size(s)
name
12345
54321
K
-
32145
Terry
Jones
works in dept #
660
Leslie
Patterson
works in dept #
341
Ashley
Smith
works in dept #
1440
done
-------------------------------------------------------------------------------- /tests/core/saved/test_03.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.J.out: -------------------------------------------------------------------------------- 1 | {"employees": {"employee": [],"extra":"", "memory": [{"type":"name","in-use":12345,"memory-use":54321,"high-use":"-","requests":32145}], "employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.JP.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | ], 5 | "extra": "", 6 | "memory": [ 7 | { 8 | "type": "name", 9 | "in-use": 12345, 10 | "memory-use": 54321, 11 | "high-use": "-", 12 | "requests": 32145 13 | } 14 | ], 15 | "employee": [ 16 | { 17 | "first-name": "Terry", 18 | "last-name": "Jones", 19 | "department": 660 20 | }, 21 | { 22 | "first-name": "Leslie", 23 | "last-name": "Patterson", 24 | "department": 341 25 | }, 26 | { 27 | "first-name": "Ashley", 28 | "last-name": "Smith", 29 | "department": 1440 30 | } 31 | ] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.JPu.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | ], 5 | "extra": "", 6 | "memory": [ 7 | { 8 | "type": "name", 9 | "in_use": 12345, 10 | "memory_use": 54321, 11 | "high_use": "-", 12 | "requests": 32145 13 | } 14 | ], 15 | "employee": [ 16 | { 17 | "first_name": "Terry", 18 | "last_name": "Jones", 19 | "department": 660 20 | }, 21 | { 22 | "first_name": "Leslie", 23 | "last_name": "Patterson", 24 | "department": 341 25 | }, 26 | { 27 | "first_name": "Ashley", 28 | "last_name": "Smith", 29 | "department": 1440 30 | } 31 | ] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.T.out: -------------------------------------------------------------------------------- 1 | [] 2 | Type InUse MemUse HighUse Requests Size(s) 3 | name 12345 54321K - 32145 4 | Terry Jones works in dept #660 5 | Leslie Patterson works in dept #341 6 | Ashley Smith works in dept #1440 7 | done 8 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.X.out: -------------------------------------------------------------------------------- 1 | name1234554321-32145TerryJones660LesliePatterson341AshleySmith1440 -------------------------------------------------------------------------------- /tests/core/saved/test_03.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.XP.out: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | 12345 6 | 54321 7 | - 8 | 32145 9 | 10 | 11 | Terry 12 | Jones 13 | 660 14 | 15 | 16 | Leslie 17 | Patterson 18 | 341 19 | 20 | 21 | Ashley 22 | Smith 23 | 1440 24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/core/saved/test_03.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_03.err -------------------------------------------------------------------------------- /tests/core/saved/test_03.out: -------------------------------------------------------------------------------- 1 | Terry Jones works in dept #660 2 | Leslie Patterson works in dept #341 3 | Ashley Smith works in dept #1440 4 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.E.out: -------------------------------------------------------------------------------- 1 | op create: [test] [] [0] 2 | op open_container: [employees] [] [0x10] 3 | op open_list: [employee] [] [0] 4 | op open_instance: [employee] [] [0x10] 5 | op string: [first-name] [Terry] [0x80] 6 | op string: [last-name] [Jones] [0x80] 7 | op content: [department] [660] [0] 8 | op close_instance: [employee] [] [0] 9 | op open_instance: [employee] [] [0x10] 10 | op string: [first-name] [Leslie] [0x80] 11 | op string: [last-name] [Patterson] [0x80] 12 | op content: [department] [341] [0] 13 | op close_instance: [employee] [] [0] 14 | op open_instance: [employee] [] [0x10] 15 | op string: [first-name] [Ashley] [0x80] 16 | op string: [last-name] [Smith] [0x80] 17 | op content: [department] [1440] [0] 18 | op close_instance: [employee] [] [0] 19 | op close_list: [employee] [] [0] 20 | op close_container: [employees] [] [0] 21 | op finish: [] [] [0] 22 | op flush: [] [] [0] 23 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.H.out: -------------------------------------------------------------------------------- 1 |
Last Name
First Name
Department
Terry
Jones
660
Leslie
Patterson
341
Ashley
Smith
1440
-------------------------------------------------------------------------------- /tests/core/saved/test_04.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.HIPx.out: -------------------------------------------------------------------------------- 1 |
2 |
Last Name
3 |
First Name
4 |
Department
5 |
6 |
7 |
Terry
8 |
Jones
9 |
660
10 |
11 |
12 |
Leslie
13 |
Patterson
14 |
341
15 |
16 |
17 |
Ashley
18 |
Smith
19 |
1440
20 |
21 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.HP.out: -------------------------------------------------------------------------------- 1 |
2 |
Last Name
3 |
First Name
4 |
Department
5 |
6 |
7 |
Terry
8 |
Jones
9 |
660
10 |
11 |
12 |
Leslie
13 |
Patterson
14 |
341
15 |
16 |
17 |
Ashley
18 |
Smith
19 |
1440
20 |
21 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.J.out: -------------------------------------------------------------------------------- 1 | {"employees": {"employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.JP.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | { 5 | "first-name": "Terry", 6 | "last-name": "Jones", 7 | "department": 660 8 | }, 9 | { 10 | "first-name": "Leslie", 11 | "last-name": "Patterson", 12 | "department": 341 13 | }, 14 | { 15 | "first-name": "Ashley", 16 | "last-name": "Smith", 17 | "department": 1440 18 | } 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.JPu.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | { 5 | "first_name": "Terry", 6 | "last_name": "Jones", 7 | "department": 660 8 | }, 9 | { 10 | "first_name": "Leslie", 11 | "last_name": "Patterson", 12 | "department": 341 13 | }, 14 | { 15 | "first_name": "Ashley", 16 | "last_name": "Smith", 17 | "department": 1440 18 | } 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.T.out: -------------------------------------------------------------------------------- 1 | Last Name First Name Department 2 | Terry Jones 660 3 | Leslie Patterson 341 4 | Ashley Smith 1440 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_04.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.X.out: -------------------------------------------------------------------------------- 1 | TerryJones660LesliePatterson341AshleySmith1440 -------------------------------------------------------------------------------- /tests/core/saved/test_04.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_04.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_04.XP.out: -------------------------------------------------------------------------------- 1 | 2 | 3 | Terry 4 | Jones 5 | 660 6 | 7 | 8 | Leslie 9 | Patterson 10 | 341 11 | 12 | 13 | Ashley 14 | Smith 15 | 1440 16 | 17 | 18 | -------------------------------------------------------------------------------- /tests/core/saved/test_05.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_05.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_05.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.E.out: -------------------------------------------------------------------------------- 1 | op create: [test] [] [0] 2 | op open_container: [employees] [] [0x410] 3 | op open_list: [employee] [] [0] 4 | op open_instance: [employee] [] [0x410] 5 | op string: [first-name] [Terry] [0x80] 6 | op string: [last-name] [Jones] [0x80] 7 | op content: [department] [660] [0] 8 | op close_instance: [employee] [] [0] 9 | op open_instance: [employee] [] [0x410] 10 | op string: [first-name] [Leslie] [0x80] 11 | op string: [last-name] [Patterson] [0x80] 12 | op content: [department] [341] [0] 13 | op close_instance: [employee] [] [0] 14 | op open_instance: [employee] [] [0x410] 15 | op string: [first-name] [Ashley] [0x80] 16 | op string: [last-name] [Smith] [0x80] 17 | op content: [department] [1440] [0] 18 | op close_instance: [employee] [] [0] 19 | op close_list: [employee] [] [0] 20 | op close_container: [employees] [] [0] 21 | op finish: [] [] [0] 22 | op flush: [] [] [0] 23 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.H.out: -------------------------------------------------------------------------------- 1 |
Terry
Jones
works in dept #
660
Leslie
Patterson
works in dept #
341
Ashley
Smith
works in dept #
1440
-------------------------------------------------------------------------------- /tests/core/saved/test_06.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.HIPx.out: -------------------------------------------------------------------------------- 1 |
2 |
Terry
3 |
4 |
Jones
5 |
works in dept #
6 |
660
7 |
8 |
9 |
Leslie
10 |
11 |
Patterson
12 |
works in dept #
13 |
341
14 |
15 |
16 |
Ashley
17 |
18 |
Smith
19 |
works in dept #
20 |
1440
21 |
22 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.HP.out: -------------------------------------------------------------------------------- 1 |
2 |
Terry
3 |
4 |
Jones
5 |
works in dept #
6 |
660
7 |
8 |
9 |
Leslie
10 |
11 |
Patterson
12 |
works in dept #
13 |
341
14 |
15 |
16 |
Ashley
17 |
18 |
Smith
19 |
works in dept #
20 |
1440
21 |
22 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.J.out: -------------------------------------------------------------------------------- 1 | {"employees": {"employee": [{"first-name":"Terry","last-name":"Jones","department":660}, {"first-name":"Leslie","last-name":"Patterson","department":341}, {"first-name":"Ashley","last-name":"Smith","department":1440}]}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.JP.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | { 5 | "first-name": "Terry", 6 | "last-name": "Jones", 7 | "department": 660 8 | }, 9 | { 10 | "first-name": "Leslie", 11 | "last-name": "Patterson", 12 | "department": 341 13 | }, 14 | { 15 | "first-name": "Ashley", 16 | "last-name": "Smith", 17 | "department": 1440 18 | } 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.JPu.out: -------------------------------------------------------------------------------- 1 | { 2 | "employees": { 3 | "employee": [ 4 | { 5 | "first_name": "Terry", 6 | "last_name": "Jones", 7 | "department": 660 8 | }, 9 | { 10 | "first_name": "Leslie", 11 | "last_name": "Patterson", 12 | "department": 341 13 | }, 14 | { 15 | "first_name": "Ashley", 16 | "last_name": "Smith", 17 | "department": 1440 18 | } 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.T.out: -------------------------------------------------------------------------------- 1 | Terry Jones works in dept #660 2 | Leslie Patterson works in dept #341 3 | Ashley Smith works in dept #1440 4 | -------------------------------------------------------------------------------- /tests/core/saved/test_06.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.X.out: -------------------------------------------------------------------------------- 1 | TerryJones660LesliePatterson341AshleySmith1440 -------------------------------------------------------------------------------- /tests/core/saved/test_06.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_06.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_06.XP.out: -------------------------------------------------------------------------------- 1 | 2 | 3 | Terry 4 | Jones 5 | 660 6 | 7 | 8 | Leslie 9 | Patterson 10 | 341 11 | 12 | 13 | Ashley 14 | Smith 15 | 1440 16 | 17 | 18 | -------------------------------------------------------------------------------- /tests/core/saved/test_07.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_07.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_07.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_07.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_07.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_07.J.out: -------------------------------------------------------------------------------- 1 | {"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":"\"(null)γιγνώσκεινὦ ἄνδρες ᾿Αθηναῖοι282ახლავე გაიაროთ რეგისტრაციაUnicode-ის მეათე საერთაშორისო550Jim"რეგტ"გთხოვთ ახ4319023fullTerry"<one"Οὐχὶ ταὐτὰ παρίσταταί μοι Jones6609047fullLeslie"Les"Patterson3416025fullAshley"Ash"Meter & Smith144040300123456789"0123456789"01234567890123456789014404049ახლა"გაიარო"საერთაშორისო1239029full -------------------------------------------------------------------------------- /tests/core/saved/test_07.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_07.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_08.E.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.H.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.HIPx.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.HP.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.J.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.J.out: -------------------------------------------------------------------------------- 1 | {"top": {"data": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data2": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17}]}}, "data3": {"contents": {"item": [{"name":"gum","count":1412}, {"name":"rope","count":85}, {"name":"ladder","count":0}, {"name":"bolt","count":4123}, {"name":"water","count":17,"test":"one"}]}}, "data4": {"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"}]}}}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.JP.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.JPu.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.T.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.T.out: -------------------------------------------------------------------------------- 1 | Item Count 2 | gum 1412 3 | rope 85 4 | ladder 0 5 | bolt 4123 6 | water 17 7 | 8 | 9 | Item Count 10 | gum 1412 11 | rope 85 12 | ladder 0 13 | bolt 4123 14 | water 17 15 | 16 | 17 | Item Count 18 | gum 1412 19 | rope 85 20 | ladder 0 21 | bolt 4123 22 | water 17 23 | one 24 | 25 | Item Count 26 | gum 1412 27 | Name: 0 + 1 = 1 28 | Name: 1 + 1 = 2 29 | Name: 2 + 1 = 3 30 | Last: 3 31 | rope 85 32 | Name: 0 + 1 = 1 33 | Name: 1 + 1 = 2 34 | Name: 2 + 1 = 3 35 | Last: 3 36 | ladder 0 37 | Name: 0 + 1 = 1 38 | Name: 1 + 1 = 2 39 | Name: 2 + 1 = 3 40 | Last: 3 41 | bolt 4123 42 | Name: 0 + 1 = 1 43 | Name: 1 + 1 = 2 44 | Name: 2 + 1 = 3 45 | Last: 3 46 | water 17 47 | Name: 0 + 1 = 1 48 | Name: 1 + 1 = 2 49 | Name: 2 + 1 = 3 50 | Last: 3 51 | one 52 | 53 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.X.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_08.XP.err: -------------------------------------------------------------------------------- 1 | test: close (xo_close_container) fails at marker 'm1'; not found 'data3' 2 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 3 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 4 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 5 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 6 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 7 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 8 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 9 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 10 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 11 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 12 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 13 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 14 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 15 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 16 | test: close (xo_close_container) fails at marker 'm2'; not found 'data4' 17 | test: close (xo_close_container) fails at marker 'm1'; not found 'data4' 18 | test: close (xo_close_container) fails at marker 'm1'; not found 'top' 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.E.out: -------------------------------------------------------------------------------- 1 | op create: [test] [] [0] 2 | op open_container: [top] [] [0x810] 3 | op open_container: [data] [] [0x810] 4 | op open_container: [contents] [] [0x810] 5 | op open_leaf_list: [name] [] [0] 6 | op string: [name] [gum] [0x2000] 7 | op string: [name] [rope] [0x2000] 8 | op string: [name] [ladder] [0x2000] 9 | op string: [name] [bolt] [0x2000] 10 | op string: [name] [water] [0x2000] 11 | op close_leaf_list: [name] [] [0] 12 | op close_container: [contents] [] [0] 13 | op open_container: [contents] [] [0x810] 14 | op open_leaf_list: [item] [] [0] 15 | op string: [item] [gum] [0x2000] 16 | op string: [item] [rope] [0x2000] 17 | op string: [item] [ladder] [0x2000] 18 | op string: [item] [bolt] [0x2000] 19 | op string: [item] [water] [0x2000] 20 | op close_leaf_list: [item] [] [0] 21 | op close_container: [contents] [] [0] 22 | op open_container: [contents] [] [0x810] 23 | op open_list: [item] [] [0] 24 | op string: [item] [gum] [0x2000] 25 | op string: [item] [rope] [0x2000] 26 | op string: [item] [ladder] [0x2000] 27 | op string: [item] [bolt] [0x2000] 28 | op string: [item] [water] [0x2000] 29 | op close_list: [item] [] [0] 30 | op string: [total] [six] [0] 31 | op string: [one] [one] [0] 32 | op open_leaf_list: [two] [] [0] 33 | op string: [two] [two] [0x2000] 34 | op close_leaf_list: [two] [] [0] 35 | op string: [three] [three] [0] 36 | op close_container: [contents] [] [0] 37 | op close_container: [data] [] [0] 38 | op close_container: [top] [] [0] 39 | op finish: [] [] [0] 40 | op flush: [] [] [0] 41 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.J.out: -------------------------------------------------------------------------------- 1 | {"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"}}}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.JP.out: -------------------------------------------------------------------------------- 1 | { 2 | "top": { 3 | "data": { 4 | "contents": { 5 | "name": [ 6 | "gum", 7 | "rope", 8 | "ladder", 9 | "bolt", 10 | "water" 11 | ] 12 | }, 13 | "contents": { 14 | "item": [ 15 | "gum", 16 | "rope", 17 | "ladder", 18 | "bolt", 19 | "water" 20 | ] 21 | }, 22 | "contents": { 23 | "item": [ 24 | "gum", 25 | "rope", 26 | "ladder", 27 | "bolt", 28 | "water" 29 | ], 30 | "total": "six", 31 | "one": "one", 32 | "two": [ 33 | "two" 34 | ], 35 | "three": "three" 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.JPu.out: -------------------------------------------------------------------------------- 1 | { 2 | "top": { 3 | "data": { 4 | "contents": { 5 | "name": [ 6 | "gum", 7 | "rope", 8 | "ladder", 9 | "bolt", 10 | "water" 11 | ] 12 | }, 13 | "contents": { 14 | "item": [ 15 | "gum", 16 | "rope", 17 | "ladder", 18 | "bolt", 19 | "water" 20 | ] 21 | }, 22 | "contents": { 23 | "item": [ 24 | "gum", 25 | "rope", 26 | "ladder", 27 | "bolt", 28 | "water" 29 | ], 30 | "total": "six", 31 | "one": "one", 32 | "two": [ 33 | "two" 34 | ], 35 | "three": "three" 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.T.out: -------------------------------------------------------------------------------- 1 | Item Count 2 | Name: gum 3 | Name: rope 4 | Name: ladder 5 | Name: bolt 6 | Name: water 7 | 8 | 9 | Item Count 10 | Name: gum 11 | Name: rope 12 | Name: ladder 13 | Name: bolt 14 | Name: water 15 | 16 | 17 | Test Three 18 | Name: gum 19 | Name: rope 20 | Name: ladder 21 | Name: bolt 22 | Name: water 23 | Total:: six 24 | onetwothree 25 | 26 | -------------------------------------------------------------------------------- /tests/core/saved/test_09.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.X.out: -------------------------------------------------------------------------------- 1 | gumropeladderboltwatergumropeladderboltwatergumropeladderboltwatersixonetwothree -------------------------------------------------------------------------------- /tests/core/saved/test_09.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_09.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_09.XP.out: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | gum 5 | rope 6 | ladder 7 | bolt 8 | water 9 | 10 | 11 | gum 12 | rope 13 | ladder 14 | bolt 15 | water 16 | 17 | 18 | gum 19 | rope 20 | ladder 21 | bolt 22 | water 23 | six 24 | one 25 | two 26 | three 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tests/core/saved/test_10.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.J.out: -------------------------------------------------------------------------------- 1 | {"__version": "3.1.4", "top": {"data": {"item": [],"data":"bold","data":"bold-ul","data":"triple","data":"inv-ul","data":"underline","data":"plain", "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}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_10.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.T.out: -------------------------------------------------------------------------------- 1 | bluegreenredyellowdefault 2 | bold bold-ul triple inv-ul underline plain 3 | Item  Total Sold In Stock On Order SKU 4 | gum 1412 54 10 GRO-000-415 5 | rope 85 4 2 HRD-000-212 6 | ladder 0 2 1 HRD-000-517 7 | bolt 4123 144 42 HRD-000-632 8 | water 17 14 2 GRO-000-2331 9 | 10 | 11 | Item 'gum': 12 | Total sold: 1412.0 13 | In stock: 54 14 | On order: 10 15 | SKU: GRO-000-415 16 | Item 'rope': 17 | Total sold: 85.0 18 | In stock: 4 19 | On order: 2 20 | SKU: HRD-000-212 21 | Item 'ladder': 22 | Total sold: 0 23 | In stock: 2 24 | On order: 1 25 | SKU: HRD-000-517 26 | Item 'bolt': 27 | Total sold: 4123.0 28 | In stock: 144 29 | On order: 42 30 | SKU: HRD-000-632 31 | Item 'water': 32 | Total sold: 17.0 33 | In stock: 14 34 | On order: 2 35 | SKU: GRO-000-2331 36 | Item 'fish': 37 | Total sold: 1321.0 38 | In stock: 45 39 | On order: 1 40 | SKU: GRO-000-533 41 | Item: gum 42 | Item: rope 43 | Item: ladder 44 | Item: bolt 45 | Item: water 46 | XXXXXXXX 47 | X XCost: 425 48 | X XCost: 455 49 | -------------------------------------------------------------------------------- /tests/core/saved/test_10.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_10.err -------------------------------------------------------------------------------- /tests/core/saved/test_10.out: -------------------------------------------------------------------------------- 1 | Item Total Sold In Stock On Order SKU 2 | gum 1412 54 10 GRO-000-415 3 | rope 85 4 2 HRD-000-212 4 | ladder 0 2 1 HRD-000-517 5 | bolt 4123 144 42 HRD-000-632 6 | water 17 14 2 GRO-000-2331 7 | 8 | 9 | Item 'gum': 10 | Total sold: 1412.0 11 | In stock: 54 12 | On order: 10 13 | SKU: GRO-000-415 14 | Item 'rope': 15 | Total sold: 85.0 16 | In stock: 4 17 | On order: 2 18 | SKU: HRD-000-212 19 | Item 'ladder': 20 | Total sold: 0 21 | In stock: 2 22 | On order: 1 23 | SKU: HRD-000-517 24 | Item 'bolt': 25 | Total sold: 4123.0 26 | In stock: 144 27 | On order: 42 28 | SKU: HRD-000-632 29 | Item 'water': 30 | Total sold: 17.0 31 | In stock: 14 32 | On order: 2 33 | SKU: GRO-000-2331 34 | Item 'fish': 35 | Total sold: 1321.0 36 | In stock: 45 37 | On order: 1 38 | SKU: GRO-000-533 39 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.E.out: -------------------------------------------------------------------------------- 1 | op create: [test] [] [0] 2 | op version: [] [3.1.4] [0] 3 | op open_container: [top] [] [0x10] 4 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 5 | {{test-program: }} 6 | {{The snake is loose}} 7 | 8 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 9 | {{test-program: }} 10 | {{My snake ate your hamster}} 11 | 12 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 13 | {{test-program: }} 14 | {{1 owl said "e=m\c[2]"}} 15 | 16 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 17 | {{test-program: }} 18 | {{An application 1011 log entry}} 19 | 20 | op close_container: [top] [] [0] 21 | op finish: [] [] [0] 22 | op flush: [] [] [0] 23 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.H.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.HIPx.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.HP.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.J.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | {"__version": "3.1.4", "top": {}} 18 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.JP.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | { 18 | "__version": "3.1.4", 19 | "top": { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.JPu.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | { 18 | "__version": "3.1.4", 19 | "top": { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.T.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.X.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | -------------------------------------------------------------------------------- /tests/core/saved/test_11.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_11.XP.err -------------------------------------------------------------------------------- /tests/core/saved/test_11.XP.out: -------------------------------------------------------------------------------- 1 | {{<14>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-status [animal-status@42 animal="snake" state="loose"] The snake is loose}} 2 | {{test-program: }} 3 | {{The snake is loose}} 4 | 5 | {{<22>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-consumed [animal-consumed@42 animal="snake" pet="hamster"] My snake ate your hamster}} 6 | {{test-program: }} 7 | {{My snake ate your hamster}} 8 | 9 | {{<29>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 animal-talk [animal-talk@42 count="1" animal="owl" quote="\"e=m\\c[2\]\""] 1 owl said "e=m\c[2]"}} 10 | {{test-program: }} 11 | {{1 owl said "e=m\c[2]"}} 12 | 13 | {{<165>1 2015-06-23T13:47:09.123-0500 worker-host test-program 222 ID47 [ID47@32473 iut="3" event-source="application" event-id="1011"] An application 1011 log entry}} 14 | {{test-program: }} 15 | {{An application 1011 log entry}} 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.E.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.H.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.HIPx.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.HP.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.J.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.J.out: -------------------------------------------------------------------------------- 1 | {"top": {"data": {"animal":"fish","animal":"fish", "thing": [{"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}, {"name":"thing","color":"green","time":"2:15","hand":"left","color":"blue","time":"3:45"}], "2by4": {"4x4":"truck","2morrow":"tomorrow"}, "tagÜÖÄ": {"cölor":"blue","säfe":"yes"}}}} 2 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.JP.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.JPmap.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '4x4' 2 | test_12: invalid XML tag name: '2morrow' 3 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.JPu.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.T.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.T.out: -------------------------------------------------------------------------------- 1 | Merry XMas!! 2 | One fish, Two fish 3 | The thing is green til 02:15 4 | My left hand is blue til 03:45 5 | The thing is green til 02:15 6 | My left hand is blue til 03:45 7 | The thing is green til 02:15 8 | My left hand is blue til 03:45 9 | The thing is green til 02:15 10 | My left hand is blue til 03:45 11 | The thing is green til 02:15 12 | My left hand is blue til 03:45 13 | The thing is green til 02:15 14 | My left hand is blue til 03:45 15 | The thing is green til 02:15 16 | My left hand is blue til 03:45 17 | The thing is green til 02:15 18 | My left hand is blue til 03:45 19 | The thing is green til 02:15 20 | My left hand is blue til 03:45 21 | The thing is green til 02:15 22 | My left hand is blue til 03:45 23 | There is truck in tomorrow 24 | The blue is yes 25 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.X.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.X.out: -------------------------------------------------------------------------------- 1 | fishfishthinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftbluethinggreenleftblue<_2by4><_4x4>truck<_2morrow>tomorrowblueyes -------------------------------------------------------------------------------- /tests/core/saved/test_12.XP.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '2by4' 2 | test_12: invalid XML tag name: '4x4' 3 | test_12: invalid XML tag name: '2morrow' 4 | test_12: invalid XML tag name: '2by4' 5 | -------------------------------------------------------------------------------- /tests/core/saved/test_12.XPmap.err: -------------------------------------------------------------------------------- 1 | test_12: invalid XML tag name: '4x4' 2 | test_12: invalid XML tag name: '2morrow' 3 | -------------------------------------------------------------------------------- /tests/core/saved/test_13.E.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.E.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.H.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.HIPx.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.HP.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.J.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.JP.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.JPu.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.JPu.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.T.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.T.out: -------------------------------------------------------------------------------- 1 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000000 2 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000001 3 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000002 4 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000003 5 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000004 6 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000005 7 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000006 8 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000007 9 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000008 10 | 12 1234 mode 12 phil phil 123 1234 12345 8 Feb 21:30 xx-00000009 11 | hits: 72 12 | -------------------------------------------------------------------------------- /tests/core/saved/test_13.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.X.err -------------------------------------------------------------------------------- /tests/core/saved/test_13.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/core/saved/test_13.XP.err -------------------------------------------------------------------------------- /tests/core/test_04.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014, Juniper Networks, Inc. 3 | * All rights reserved. 4 | * This SOFTWARE is licensed under the LICENSE provided in the 5 | * ../Copyright file. By downloading, installing, copying, or otherwise 6 | * using the SOFTWARE, you agree to be bound by the terms of that 7 | * LICENSE. 8 | * Phil Shafer, July 2014 9 | */ 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | #include "xo.h" 16 | 17 | xo_info_t info[] = { 18 | { "employee", "object", "Employee data" }, 19 | { "first-name", "string", "First name of employee" }, 20 | { "last-name", "string", "Last name of employee" }, 21 | { "department", "number", "Department number" }, 22 | }; 23 | int info_count = (sizeof(info) / sizeof(info[0])); 24 | 25 | int 26 | main (int argc, char **argv) 27 | { 28 | struct employee { 29 | const char *e_first; 30 | const char *e_last; 31 | unsigned e_dept; 32 | } employees[] = { 33 | { "Terry", "Jones", 660 }, 34 | { "Leslie", "Patterson", 341 }, 35 | { "Ashley", "Smith", 1440 }, 36 | { NULL, NULL, 0 } 37 | }, *ep = employees; 38 | 39 | argc = xo_parse_args(argc, argv); 40 | if (argc < 0) 41 | return 1; 42 | 43 | xo_set_info(NULL, info, info_count); 44 | 45 | xo_open_container("employees"); 46 | xo_open_list("employee"); 47 | 48 | xo_emit("{T:Last Name/%-12s}{T:First Name/%-14s}{T:Department/%s}\n"); 49 | for ( ; ep->e_first; ep++) { 50 | xo_open_instance("employee"); 51 | xo_emit("{k:first-name/%-12s/%s}{k:last-name/%-14s/%s}" 52 | "{:department/%8u/%u}\n", 53 | ep->e_first, ep->e_last, ep->e_dept); 54 | xo_close_instance("employee"); 55 | } 56 | 57 | xo_close_list("employee"); 58 | xo_close_container("employees"); 59 | 60 | xo_finish(); 61 | 62 | return 0; 63 | } 64 | -------------------------------------------------------------------------------- /tests/core/test_06.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014, Juniper Networks, Inc. 3 | * All rights reserved. 4 | * This SOFTWARE is licensed under the LICENSE provided in the 5 | * ../Copyright file. By downloading, installing, copying, or otherwise 6 | * using the SOFTWARE, you agree to be bound by the terms of that 7 | * LICENSE. 8 | * Phil Shafer, July 2014 9 | */ 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | #include "xo.h" 16 | 17 | xo_info_t info[] = { 18 | { "employee", "object", "Employee data" }, 19 | { "first-name", "string", "First name of employee" }, 20 | { "last-name", "string", "Last name of employee" }, 21 | { "department", "number", "Department number" }, 22 | }; 23 | int info_count = (sizeof(info) / sizeof(info[0])); 24 | 25 | int 26 | main (int argc, char **argv) 27 | { 28 | struct employee { 29 | const char *e_first; 30 | const char *e_last; 31 | unsigned e_dept; 32 | } employees[] = { 33 | { "Terry", "Jones", 660 }, 34 | { "Leslie", "Patterson", 341 }, 35 | { "Ashley", "Smith", 1440 }, 36 | { NULL, NULL, 0 } 37 | }, *ep = employees; 38 | 39 | argc = xo_parse_args(argc, argv); 40 | if (argc < 0) 41 | return 1; 42 | 43 | xo_set_info(NULL, info, info_count); 44 | 45 | xo_set_flags(NULL, XOF_DTRT); 46 | 47 | xo_open_container("employees"); 48 | xo_open_list("employee"); 49 | 50 | for ( ; ep->e_first; ep++) { 51 | xo_open_instance("employee"); 52 | xo_emit("{k:first-name} {k:last-name} works in dept #{:department/%u}\n", 53 | ep->e_first, ep->e_last, ep->e_dept); 54 | xo_close_instance_d(); 55 | } 56 | 57 | xo_close_list_d(); 58 | xo_close_container_d(); 59 | 60 | xo_finish(); 61 | 62 | return 0; 63 | } 64 | -------------------------------------------------------------------------------- /tests/core/test_12.map: -------------------------------------------------------------------------------- 1 | # test map 2 | tagÜÖÄ=tagger 3 | cölor=color 4 | säfe=safe 5 | 6 | # the other way 7 | 2by4=tagÜÖÄ1 8 | 2by4=tagÜÖÄ2 9 | 2by4=tagÜÖÄ3 10 | animal=jack-not-name -------------------------------------------------------------------------------- /tests/gettext/ldns.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # This file is put in the public domain. 3 | # FIRST AUTHOR , YEAR. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PACKAGE VERSION\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2015-07-01 16:15-0400\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: LANGUAGE \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=CHARSET\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: gt_01.c:46 20 | #, c-format 21 | msgid "Received {:received} {N:byte,bytes} from {:from}#{:port} in {:time} ms\n" 22 | msgstr "" 23 | 24 | msgid "byte" 25 | msgid_plural "bytes" 26 | msgstr[0] "" 27 | msgstr[1] "" 28 | 29 | -------------------------------------------------------------------------------- /tests/gettext/po/pig_latin/ldns.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # This file is put in the public domain. 3 | # FIRST AUTHOR , YEAR. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: libxo unit test\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "POT-Creation-Date: 2015-07-01 16:15-0400\n" 10 | "PO-Revision-Date: 2015-07-01 18:47-0500\n" 11 | "Last-Translator: P.S. \n" 12 | "Language-Team: Self-inflicted \n" 13 | "Language: teo\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Poedit 1.8.1\n" 18 | "Plural-Forms: nplurals=3; plural=(n==0) ? 0 : (n==1) ? 1 : 2;\n" 19 | "X-Poedit-SourceCharset: iso-8859-1\n" 20 | 21 | #: gt_01.c:46 22 | #, c-format 23 | msgid "Received {:received} {N:byte,bytes} from {:from}#{:port} in {:time} ms\n" 24 | msgstr "Eceivedray {:received} {N:byte,bytes} omfray {:from}#{:port} inyay {:time} msyay\n" 25 | 26 | msgid "byte" 27 | msgid_plural "bytes" 28 | msgstr[0] "ldb0" 29 | msgstr[1] "ldb1" 30 | msgstr[2] "ldb2" 31 | -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.H.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.HIPx.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.HP.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.J.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.J.out: -------------------------------------------------------------------------------- 1 | {"top": {"adjective":"amingflay","noun":"ordsway","verb":"urningbay","owner":"ymay","target":"ouchcay","adjective":"amingflay","noun":"ordsway","verb":"urningbay","owner":"ymay","target":"ouchcay", "bytes": [0,1,2,3,4],"total":1234,"received":1234,"from":"foop","port":4321,"time":32,"received":1234,"from":"foop","port":4321,"time":32,"received":1234,"from":"foop","port":4321,"time":32,"marzlevanes":3,"version":"1.2.3", "__warning": {"program":"gt_01","message":"Nableuay otay ectulatobjay orwardfay elocipingvay","verb":"ectulatobjay","error":"Ermissionpay eniedday"}, "__warning": {"program":"gt_01","message":"automaticyay ynchronizationsay ofyay ardinalyay ammetersgray ailedfay","style":"automaticyay","type":"ardinalyay","target":"ammetersgray","error":"Ermissionpay eniedday"},"marzlevanes":6,"windings":"otuslay-oyay-eltayay"}} 2 | -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.JP.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.JP.out: -------------------------------------------------------------------------------- 1 | { 2 | "top": { 3 | "adjective": "amingflay", 4 | "noun": "ordsway", 5 | "verb": "urningbay", 6 | "owner": "ymay", 7 | "target": "ouchcay", 8 | "adjective": "amingflay", 9 | "noun": "ordsway", 10 | "verb": "urningbay", 11 | "owner": "ymay", 12 | "target": "ouchcay", 13 | "bytes": [ 14 | 0, 15 | 1, 16 | 2, 17 | 3, 18 | 4 19 | ], 20 | "total": 1234, 21 | "received": 1234, 22 | "from": "foop", 23 | "port": 4321, 24 | "time": 32, 25 | "received": 1234, 26 | "from": "foop", 27 | "port": 4321, 28 | "time": 32, 29 | "received": 1234, 30 | "from": "foop", 31 | "port": 4321, 32 | "time": 32, 33 | "marzlevanes": 3, 34 | "version": "1.2.3", 35 | "__warning": { 36 | "program": "gt_01", 37 | "message": "Nableuay otay ectulatobjay orwardfay elocipingvay", 38 | "verb": "ectulatobjay", 39 | "error": "Ermissionpay eniedday" 40 | }, 41 | "__warning": { 42 | "program": "gt_01", 43 | "message": "automaticyay ynchronizationsay ofyay ardinalyay ammetersgray ailedfay", 44 | "style": "automaticyay", 45 | "type": "ardinalyay", 46 | "target": "ammetersgray", 47 | "error": "Ermissionpay eniedday" 48 | }, 49 | "marzlevanes": 6, 50 | "windings": "otuslay-oyay-eltayay" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.T.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.T.out: -------------------------------------------------------------------------------- 1 | Ouryay ordsway amingflay isyay ymayouchcay bubbly-bubbly urningbay 2 | Ethay ordsway asway 'ymayamingflayouchcay' urningbay 3 | 0 yebay 4 | 1 yesbay 5 | 2 yezbay 6 | 3 yezbay 7 | 4 yezbay 8 | otaltay 1234 9 | Eceivedray 1234 ldb2 omfray foop#4321 inyay 32 msyay 10 | Received 1234 yezbay from foop#4321 in 32 ms 11 | Eceivedray 1234 ldb2 omfray foop#4321 inyay 32 msyay 12 | Onlyay 3 arzlevanezmay areyay unctioningfay orrectlycay 13 | Ersionvay 1.2.3 14 | gt_01: Nableuay otay ectulatobjay orwardfay elocipingvay: Ermissionpay eniedday 15 | gt_01: automaticyay ynchronizationsay ofyay ardinalyay ammetersgray ailedfay: Ermissionpay eniedday 16 | ydrocoptichay arzlevanesmay: 6 17 | Dude, Indingsway: otuslay-oyay-eltayay 18 | -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.X.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.X.out: -------------------------------------------------------------------------------- 1 | amingflayordswayurningbayymayouchcayamingflayordswayurningbayymayouchcay0123412341234foop43211234foop43211234foop432131.2.3<__warning>gt_01Nableuay otay ectulatobjay orwardfay elocipingvayectulatobjayErmissionpay eniedday<__warning>gt_01automaticyay ynchronizationsay ofyay ardinalyay ammetersgray ailedfayardinalyayammetersgrayErmissionpay eniedday6otuslay-oyay-eltayay -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/gettext/saved/gt_01.XP.err -------------------------------------------------------------------------------- /tests/gettext/saved/gt_01.XP.out: -------------------------------------------------------------------------------- 1 | 2 | amingflay 3 | ordsway 4 | urningbay 5 | ymay 6 | ouchcay 7 | amingflay 8 | ordsway 9 | urningbay 10 | ymay 11 | ouchcay 12 | 0 13 | 1 14 | 2 15 | 3 16 | 4 17 | 1234 18 | 1234 19 | foop 20 | 4321 21 | 22 | 1234 23 | foop 24 | 4321 25 | 26 | 1234 27 | foop 28 | 4321 29 | 30 | 3 31 | 1.2.3 32 | <__warning> 33 | gt_01 34 | Nableuay otay ectulatobjay orwardfay elocipingvay 35 | ectulatobjay 36 | Ermissionpay eniedday 37 | 38 | <__warning> 39 | gt_01 40 | automaticyay ynchronizationsay ofyay ardinalyay ammetersgray ailedfay 41 | 42 | ardinalyay 43 | ammetersgray 44 | Ermissionpay eniedday 45 | 46 | 6 47 | otuslay-oyay-eltayay 48 | 49 | -------------------------------------------------------------------------------- /tests/utf8/saved/utf8_01.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/utf8/saved/utf8_01.T.err -------------------------------------------------------------------------------- /tests/utf8/saved/utf8_02.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/utf8/saved/utf8_02.T.err -------------------------------------------------------------------------------- /tests/utf8/saved/utf8_02.T.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/utf8/saved/utf8_02.T.out -------------------------------------------------------------------------------- /tests/utf8/saved/utf8_03.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/utf8/saved/utf8_03.T.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.H.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.H.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.HIPx.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.HIPx.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.HP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.HP.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.J.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.J.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.J.out: -------------------------------------------------------------------------------- 1 | "top": {"item": {"name":"one","value":1,"color":"red"}, "item": {"name":"two","value":2,"color":"blue"}, "item": {"name":"three","value":3,"color":"green"}, "item": {"name":"four","value":4,"color":"yellow"}, "anchor": {"address":"0xdeadbeef","foo":1}, "anchor": {"address":"0xdeadbeef","foo":1}, "anchor": {"address":"0xdeadbeef","foo":1}, "anchor": {"address":"0xdeadbeef","foo":1}} -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.JP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.JP.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.JP.out: -------------------------------------------------------------------------------- 1 | "top": { 2 | "item": { 3 | "name": "one", 4 | "value": 1, 5 | "color": "red" 6 | }, 7 | "item": { 8 | "name": "two", 9 | "value": 2, 10 | "color": "blue" 11 | }, 12 | "item": { 13 | "name": "three", 14 | "value": 3, 15 | "color": "green" 16 | }, 17 | "item": { 18 | "name": "four", 19 | "value": 4, 20 | "color": "yellow" 21 | }, 22 | "anchor": { 23 | "address": "0xdeadbeef", 24 | "foo": 1 25 | }, 26 | "anchor": { 27 | "address": "0xdeadbeef", 28 | "foo": 1 29 | }, 30 | "anchor": { 31 | "address": "0xdeadbeef", 32 | "foo": 1 33 | }, 34 | "anchor": { 35 | "address": "0xdeadbeef", 36 | "foo": 1 37 | } 38 | } -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.T.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.T.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.T.out: -------------------------------------------------------------------------------- 1 | Item one is number 001, color: red 2 | Item two is number 002, color: blue 3 | Item three is number 003, color: green 4 | Item four is number 004, color: yellow 5 | 0xdeadbeef..1 6 | 0xdeadbeef..1 7 | 0xdeadbeef..1 8 | 0xdeadbeef..1 9 | partial line -- rest of line 10 | -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.X.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.X.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.X.out: -------------------------------------------------------------------------------- 1 | one1redtwo2bluethree3greenfour4yellow
0xdeadbeef
1
0xdeadbeef
1
0xdeadbeef
1
0xdeadbeef
1
-------------------------------------------------------------------------------- /tests/xo/saved/xo_01.XP.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Juniper/libxo/fd5db1b4fba49e1f4c35d6c466710c0e89f54043/tests/xo/saved/xo_01.XP.err -------------------------------------------------------------------------------- /tests/xo/saved/xo_01.XP.out: -------------------------------------------------------------------------------- 1 | 2 | 3 | one 4 | 1 5 | red 6 | 7 | 8 | two 9 | 2 10 | blue 11 | 12 | 13 | three 14 | 3 15 | green 16 | 17 | 18 | four 19 | 4 20 | yellow 21 | 22 | 23 |
0xdeadbeef
24 | 1 25 |
26 | 27 |
0xdeadbeef
28 | 1 29 |
30 | 31 |
0xdeadbeef
32 | 1 33 |
34 | 35 |
0xdeadbeef
36 | 1 37 |
38 |
39 | -------------------------------------------------------------------------------- /tests/xo/saved/xo_02.H.err: -------------------------------------------------------------------------------- 1 | Usage: xo [options] format [fields] 2 | --close Close tags for the given path 3 | --close-instance Close an open instance name 4 | --close-list Close an open list name 5 | --continuation OR -C Output belongs on same line as previous output 6 | --depth Set the depth for pretty printing 7 | --help Display this help text 8 | --html OR -H Generate HTML output 9 | --instance OR -I Wrap in an instance of the given name 10 | --json OR -J Generate JSON output 11 | --leading-xpath OR -l Add a prefix to generated XPaths (HTML) 12 | --not-first Indicate this object is not the first (JSON) 13 | --open Open tags for the given path 14 | --open-instance Open an instance given by name 15 | --open-list Open a list given by name 16 | --option -or -O Give formatting options 17 | --pretty OR -p Make 'pretty' output (add indent, newlines) 18 | --style