svn commit: r322017 - in vendor/Juniper/libxo/dist: . doc libxo tests/core tests/core/saved tests/xo tests/xo/saved xo xohtml xolint xopo

Phil Shafer phil at FreeBSD.org
Thu Aug 3 15:43:22 UTC 2017


Author: phil
Date: Thu Aug  3 15:43:14 2017
New Revision: 322017
URL: https://svnweb.freebsd.org/changeset/base/322017

Log:
  Import libxo 0.8.4

Modified:
  vendor/Juniper/libxo/dist/Makefile.am
  vendor/Juniper/libxo/dist/configure.ac
  vendor/Juniper/libxo/dist/doc/libxo-manual.html
  vendor/Juniper/libxo/dist/libxo/libxo.3
  vendor/Juniper/libxo/dist/libxo/libxo.c
  vendor/Juniper/libxo/dist/libxo/xo_attr.3
  vendor/Juniper/libxo/dist/libxo/xo_create.3
  vendor/Juniper/libxo/dist/libxo/xo_emit.3
  vendor/Juniper/libxo/dist/libxo/xo_emit_err.3
  vendor/Juniper/libxo/dist/libxo/xo_emit_f.3
  vendor/Juniper/libxo/dist/libxo/xo_err.3
  vendor/Juniper/libxo/dist/libxo/xo_error.3
  vendor/Juniper/libxo/dist/libxo/xo_finish.3
  vendor/Juniper/libxo/dist/libxo/xo_flush.3
  vendor/Juniper/libxo/dist/libxo/xo_format.5
  vendor/Juniper/libxo/dist/libxo/xo_message.3
  vendor/Juniper/libxo/dist/libxo/xo_no_setlocale.3
  vendor/Juniper/libxo/dist/libxo/xo_open_container.3
  vendor/Juniper/libxo/dist/libxo/xo_open_list.3
  vendor/Juniper/libxo/dist/libxo/xo_open_marker.3
  vendor/Juniper/libxo/dist/libxo/xo_options.7
  vendor/Juniper/libxo/dist/libxo/xo_parse_args.3
  vendor/Juniper/libxo/dist/libxo/xo_set_allocator.3
  vendor/Juniper/libxo/dist/libxo/xo_set_flags.3
  vendor/Juniper/libxo/dist/libxo/xo_set_info.3
  vendor/Juniper/libxo/dist/libxo/xo_set_options.3
  vendor/Juniper/libxo/dist/libxo/xo_set_style.3
  vendor/Juniper/libxo/dist/libxo/xo_set_syslog_enterprise_id.3
  vendor/Juniper/libxo/dist/libxo/xo_set_version.3
  vendor/Juniper/libxo/dist/libxo/xo_set_writer.3
  vendor/Juniper/libxo/dist/libxo/xo_syslog.3
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.E.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.H.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.HIPx.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.HP.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.J.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.JP.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.T.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.X.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_01.XP.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_02.E.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_02.J.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_02.JP.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_02.X.out
  vendor/Juniper/libxo/dist/tests/core/saved/test_02.XP.out
  vendor/Juniper/libxo/dist/tests/core/test_01.c
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.H.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HIPx.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HP.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.J.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.JP.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.T.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.X.out
  vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.XP.out
  vendor/Juniper/libxo/dist/tests/xo/xo_01.sh
  vendor/Juniper/libxo/dist/xo/xo.1
  vendor/Juniper/libxo/dist/xohtml/xohtml.1
  vendor/Juniper/libxo/dist/xohtml/xohtml.sh.in
  vendor/Juniper/libxo/dist/xolint/xolint.1
  vendor/Juniper/libxo/dist/xopo/xopo.1

Modified: vendor/Juniper/libxo/dist/Makefile.am
==============================================================================
--- vendor/Juniper/libxo/dist/Makefile.am	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/Makefile.am	Thu Aug  3 15:43:14 2017	(r322017)
@@ -38,7 +38,14 @@ GH_PAGES_DIR = gh-pages/
 GH_PAGES_DIR_VER = gh-pages/${PACKAGE_VERSION}
 PACKAGE_FILE = ${PACKAGE_TARNAME}-${PACKAGE_VERSION}.tar.gz
 
-upload: dist upload-docs
+XOHTML_FILES = \
+    ${top_srcdir}/xohtml/xohtml.css \
+    ${top_srcdir}/xohtml/xohtml.js \
+    ${top_srcdir}/xohtml/external/jquery.js \
+    ${top_srcdir}/xohtml/external/jquery.qtip.css \
+    ${top_srcdir}/xohtml/external/jquery.qtip.js
+
+upload: dist upload-docs upload-xohtml-files
 	@echo "Remember to run:"
 	@echo "        gt tag ${PACKAGE_VERSION}"
 
@@ -54,6 +61,18 @@ upload-docs: docs
 			&& git add libxo-manual.html \
 			&& git commit -m 'new docs' \
                                libxo-manual.html ${PACKAGE_VERSION} \
+			&& git push origin gh-pages ) ; true
+
+upload-xohtml-files:
+	@echo "Uploading xohtml files ... "
+	@-[ -d ${GH_PAGES_DIR} ] \
+		&& echo "Updating xohtml files on gh-pages ..." \
+		&& mkdir -p ${GH_PAGES_DIR_VER}/xohtml \
+		&& cp ${XOHTML_FILES} ${GH_PAGES_DIR_VER}/xohtml \
+		&& (cd ${GH_PAGES_DIR} \
+			&& git add ${PACKAGE_VERSION}/xohtml \
+			&& git commit -m 'new xohtml files' \
+                               ${PACKAGE_VERSION}/xohtml \
 			&& git push origin gh-pages ) ; true
 
 pkgconfigdir=$(libdir)/pkgconfig

Modified: vendor/Juniper/libxo/dist/configure.ac
==============================================================================
--- vendor/Juniper/libxo/dist/configure.ac	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/configure.ac	Thu Aug  3 15:43:14 2017	(r322017)
@@ -12,7 +12,7 @@
 #
 
 AC_PREREQ(2.2)
-AC_INIT([libxo], [0.8.1], [phil at juniper.net])
+AC_INIT([libxo], [0.8.4], [phil at juniper.net])
 AM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability])
 
 # Support silent build rules.  Requires at least automake-1.11.

Modified: vendor/Juniper/libxo/dist/doc/libxo-manual.html
==============================================================================
--- vendor/Juniper/libxo/dist/doc/libxo-manual.html	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/doc/libxo-manual.html	Thu Aug  3 15:43:14 2017	(r322017)
@@ -515,7 +515,7 @@ li.indline1 {
  
   } 
   @top-right {
-       content: "June 2017";
+       content: "August 2017";
  
   } 
   @top-center {
@@ -22011,7 +22011,7 @@ jQuery(function ($) {
 </tr>
 <tr>
 <td class="header left"></td>
-<td class="header right">June 14, 2017</td>
+<td class="header right">August 3, 2017</td>
 </tr>
 </table></div>
 <p id="title" class="title">libxo: The Easy Way to Generate text, XML, JSON, and HTML output<br><span class="filename">libxo-manual</span></p>

Modified: vendor/Juniper/libxo/dist/libxo/libxo.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/libxo.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/libxo.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -311,3 +311,13 @@ to use an alternative set of low-level output function
 .Xr xo_set_style 3 ,
 .Xr xo_set_writer 3 ,
 .Xr xo_format 5
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/libxo.c
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/libxo.c	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/libxo.c	Thu Aug  3 15:43:14 2017	(r322017)
@@ -137,7 +137,7 @@ static const char xo_default_format[] = "%s";
 
 #define XO_INDENT_BY 2	/* Amount to indent when pretty printing */
 #define XO_DEPTH	128	 /* Default stack depth */
-#define XO_MAX_ANCHOR_WIDTH (8*1024) /* Anything wider is just sillyb */
+#define XO_MAX_ANCHOR_WIDTH (8*1024) /* Anything wider is just silly */
 
 #define XO_FAILURE_NAME	"failure"
 
@@ -5071,16 +5071,60 @@ xo_find_width (xo_handle_t *xop, xo_field_info_t *xfip
 	bp[vlen] = '\0';
 
 	width = strtol(bp, &cp, 0);
-	if (width == LONG_MIN || width == LONG_MAX
-	    || bp == cp || *cp != '\0' ) {
+	if (width == LONG_MIN || width == LONG_MAX || bp == cp || *cp != '\0') {
 	    width = 0;
 	    xo_failure(xop, "invalid width for anchor: '%s'", bp);
 	}
     } else if (flen) {
-	if (flen != 2 || strncmp("%d", fmt, flen) != 0)
-	    xo_failure(xop, "invalid width format: '%*.*s'", flen, flen, fmt);
-	if (!XOF_ISSET(xop, XOF_NO_VA_ARG))
-	    width = va_arg(xop->xo_vap, int);
+	/*
+	 * We really expect the format for width to be "{:/%d}" or
+	 * "{:/%u}", so if that's the case, we just grab our width off
+	 * the argument list.  But we need to avoid optimized logic if
+	 * there's a custom formatter.
+	 */
+	if (xop->xo_formatter == NULL && flen == 2
+	        && strncmp("%d", fmt, flen) == 0) {
+	    if (!XOF_ISSET(xop, XOF_NO_VA_ARG))
+		width = va_arg(xop->xo_vap, int);
+	} else if (xop->xo_formatter == NULL && flen == 2
+		   && strncmp("%u", fmt, flen) == 0) {
+	    if (!XOF_ISSET(xop, XOF_NO_VA_ARG))
+		width = va_arg(xop->xo_vap, unsigned);
+	} else {
+	    /*
+	     * So we have a format and it's not a simple one like
+	     * "{:/%d}".  That means we need to format the field,
+	     * extract the value from the formatted output, and then
+	     * discard that output.
+	     */
+	    int anchor_was_set = FALSE;
+	    xo_buffer_t *xbp = &xop->xo_data;
+	    ssize_t start_offset = xo_buf_offset(xbp);
+	    bp = xo_buf_cur(xbp);	/* Save start of the string */
+	    cp = NULL;
+
+	    if (XOIF_ISSET(xop, XOIF_ANCHOR)) {
+		XOIF_CLEAR(xop, XOIF_ANCHOR);
+		anchor_was_set = TRUE;
+	    }
+
+	    ssize_t rc = xo_do_format_field(xop, xbp, fmt, flen, 0);
+	    if (rc >= 0) {
+		xo_buf_append(xbp, "", 1); /* Append a NUL */
+
+		width = strtol(bp, &cp, 0);
+		if (width == LONG_MIN || width == LONG_MAX
+		        || bp == cp || *cp != '\0') {
+		    width = 0;
+		    xo_failure(xop, "invalid width for anchor: '%s'", bp);
+		}
+	    }
+
+	    /* Reset the cur pointer to where we found it */
+	    xbp->xb_curp = xbp->xb_bufp + start_offset;
+	    if (anchor_was_set)
+		XOIF_SET(xop, XOIF_ANCHOR);
+	}
     }
 
     return width;
@@ -5107,9 +5151,6 @@ static void
 xo_anchor_start (xo_handle_t *xop, xo_field_info_t *xfip,
 		 const char *value, ssize_t vlen)
 {
-    if (xo_style(xop) != XO_STYLE_TEXT && xo_style(xop) != XO_STYLE_HTML)
-	return;
-
     if (XOIF_ISSET(xop, XOIF_ANCHOR))
 	xo_failure(xop, "the anchor already recording is discarded");
 
@@ -5129,9 +5170,6 @@ static void
 xo_anchor_stop (xo_handle_t *xop, xo_field_info_t *xfip,
 		 const char *value, ssize_t vlen)
 {
-    if (xo_style(xop) != XO_STYLE_TEXT && xo_style(xop) != XO_STYLE_HTML)
-	return;
-
     if (!XOIF_ISSET(xop, XOIF_ANCHOR)) {
 	xo_failure(xop, "no start anchor");
 	return;

Modified: vendor/Juniper/libxo/dist/libxo/xo_attr.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_attr.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_attr.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -58,3 +58,13 @@ already emitted in other form.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_create.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_create.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_create.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -65,3 +65,13 @@ resources associated with the default handle.
 .Xr xo_emit 3 ,
 .Xr xo_set_options 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_emit.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_emit.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_emit.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -102,3 +102,13 @@ then the number of display columns consumed by the out
 .Xr xo_open_list 3 ,
 .Xr xo_format 5 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_emit_err.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_emit_err.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_emit_err.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -70,3 +70,13 @@ parameter.
 .Xr xo_format 5 ,
 .Xr xo_err 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_emit_f.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_emit_f.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_emit_f.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -109,3 +109,13 @@ for details.
 .Xr xo_open_list 3 ,
 .Xr xo_format 5 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_err.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_err.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_err.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -72,3 +72,13 @@ parameter.
 .Xr xo_emit 3 ,
 .Xr xo_emit_err 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_error.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_error.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_error.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -39,3 +39,13 @@ calls.
 .Xr printf 3 ,
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_finish.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_finish.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_finish.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -37,3 +37,13 @@ especially for the non-TEXT output styles.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_flush.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_flush.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_flush.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -33,3 +33,13 @@ function is used for this.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_format.5
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_format.5	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_format.5	Thu Aug  3 15:43:14 2017	(r322017)
@@ -965,3 +965,13 @@ names to make that difference more obvious.
 .Xr libxo 3 ,
 .Xr xolint 1 ,
 .Xr xo_emit 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_message.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_message.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_message.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -66,3 +66,13 @@ and
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_no_setlocale.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_no_setlocale.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_no_setlocale.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -41,3 +41,13 @@ function.
 .Xr xo_open_list 3 ,
 .Xr xo_format 5 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_open_container.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_open_container.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_open_container.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -186,3 +186,13 @@ and the name recorded do not match.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_open_list.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_open_list.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_open_list.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -156,3 +156,13 @@ are rendered as multiple leaf elements.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_open_marker.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_open_marker.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_open_marker.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -103,3 +103,13 @@ properly.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_options.7
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_options.7	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_options.7	Thu Aug  3 15:43:14 2017	(r322017)
@@ -145,3 +145,12 @@ The following are three example invocations of
 .Sh SEE ALSO
 .Xr libxo 3 ,
 .Xr xo_format 5
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .

Modified: vendor/Juniper/libxo/dist/libxo/xo_parse_args.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_parse_args.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_parse_args.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -150,3 +150,13 @@ must be maintained by the caller.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_allocator.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_allocator.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_allocator.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -52,3 +52,13 @@ functions are used.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_flags.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_flags.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_flags.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -137,3 +137,13 @@ handle. 
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_info.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_info.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_info.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -100,3 +100,13 @@ and "data-help" attributes:
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_options.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_options.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_options.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -29,3 +29,13 @@ The options are identical to those listed in
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_style.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_style.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_style.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -51,3 +51,13 @@ The name can be any of the styles: "text", "xml", "jso
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_syslog_enterprise_id.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_syslog_enterprise_id.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_syslog_enterprise_id.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -34,3 +34,13 @@ https://www.iana.org/assignments/enterprise-numbers/en
 .Sh SEE ALSO
 .Xr xo_syslog 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_version.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_version.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_version.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -32,3 +32,13 @@ is in use.
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_set_writer.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_set_writer.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_set_writer.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -54,3 +54,13 @@ flush any pending data associated with the opaque poin
 .Sh SEE ALSO
 .Xr xo_emit 3 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/libxo/xo_syslog.3
==============================================================================
--- vendor/Juniper/libxo/dist/libxo/xo_syslog.3	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/libxo/xo_syslog.3	Thu Aug  3 15:43:14 2017	(r322017)
@@ -77,3 +77,13 @@ function names.
 .Xr xo_set_syslog_enterprise_id 3 ,
 .Xr xo_format 5 ,
 .Xr libxo 3
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.E.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.E.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.E.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,5 +1,11 @@
 op create: [] [] [0]
 op open_container: [top] [] [0x810]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
+op content: [address] [0x0] [0]
+op content: [port] [1] [0]
 op content: [used-percent] [12] [0]
 op content: [kve_start] [0xdeadbeef] [0x8]
 op content: [kve_end] [0xcabb1e] [0x8]

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.H.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.H.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.H.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,2 +1,2 @@
-<div class="line"><div class="text">df </div><div class="data" data-tag="used-percent">   12</div><div class="units">%</div></div><div class="line"><div class="text">testing argument modifier </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="text">testing argument modifier with encoding to </div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="label">Label text</div><div class="text"> </div><div class="data" data-tag="label">value</div></div><div class="line"><div class="data" data-tag="max-chaos">  very  </div><div class="data" data-tag="min-chaos">42</div><div class="data" data-tag="some-chaos">42
+<div class="line"><div class="text">anchor </div><div class="padding">            </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">anchor </div><div class="padding">            </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">anchor </div><div class="padding">            </div><div class="data" data-tag="address">0x0</div><div class="text">..</div><div class="data" data-tag="port">1</div></div><div class="line"><div class="text">df </div><div class="data" data-tag="used-percent">   12</div><div class="units">%</div></div><div class="line"><div class="text">testing argument modifier </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><di
 v class="text">testing argument modifier with encoding to </div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="label">Label text</div><div class="text"> </div><div class="data" data-tag="label">value</div></div><div class="line"><div class="data" data-tag="max-chaos">  very  </div><div class="data" data-tag="min-chaos">42</div><div class="data" data-tag="some-chaos">42
 </div><div class="text">Connecting to </div><div class="data" data-tag="host">my-box</div><div class="text">.</div><div class="data" data-tag="domain">example.com</div><div class="text">...</div></div><div class="line"><div class="title">Item      </div><div class="title">  Total Sold</div><div class="title">    In Stock</div><div class="title">    On Order</div><div class="title">  SKU</div></div><div class="line"><div class="data" data-tag="name" data-key="key">gum       </div><div class="data" data-tag="sold">        1412</div><div class="data" data-tag="in-stock">          54</div><div class="data" data-tag="on-order">          10</div><div class="data" data-tag="sku" data-key="key">  GRO-000-415</div></div><div class="line"><div class="data" data-tag="name" data-key="key">rope      </div><div class="data" data-tag="sold">          85</div><div class="data" data-tag="in-stock">           4</div><div class="data" data-tag="on-order">           2</div><div class="data" data-tag="s
 ku" data-key="key">  HRD-000-212</div></div><div class="line"><div class="data" data-tag="name" data-key="key">ladder    </div><div class="data" data-tag="sold">           0</div><div class="data" data-tag="in-stock">           2</div><div class="data" data-tag="on-order">           1</div><div class="data" data-tag="sku" data-key="key">  HRD-000-517</div></div><div class="line"><div class="data" data-tag="name" data-key="key">bolt      </div><div class="data" data-tag="sold">        4123</div><div class="data" data-tag="in-stock">         144</div><div class="data" data-tag="on-order">          42</div><div class="data" data-tag="sku" data-key="key">  HRD-000-632</div></div><div class="line"><div class="data" data-tag="name" data-key="key">water     </div><div class="data" data-tag="sold">          17</div><div class="data" data-tag="in-stock">          14</div><div class="data" data-tag="on-order">           2</div><div class="data" data-tag="sku" data-key="key">  GRO-000-2331</di
 v></div><div class="line"></div><div class="!
 line"></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">gum</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1412.0</div></div><div class="line"><div class="padding">   </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">54</div></div><div class="line"><div class="padding">   </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">10</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-415</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="nam
 e" data-key="key">rope</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">85.0</div></div><div class="line"><div class="padding">   </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">4</div></div><div class="line"><div class="padding">   </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-212</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">ladder</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div clas
 s="label">Total sold</div><div class="text">!
 : </div><!
 div class="data" data-tag="sold">0</div></div><div class="line"><div class="padding">   </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">2</div></div><div class="line"><div class="padding">   </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">1</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-517</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">bolt</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">4123.0</div></div><div class="line"><div class="padding">   </div><div class="label">In s
 tock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">144</div></div><div class="line"><div class="padding">   </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">42</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">HRD-000-632</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">water</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">17.0</div></div><div class="line"><div class="padding">   </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">14</div>
 </div><div class="line"><div class="padding"!
 >   </div!
 ><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="on-order">2</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-2331</div></div><div class="line"><div class="label">Item</div><div class="text"> '</div><div class="data" data-tag="name" data-key="key">fish</div><div class="text">':</div></div><div class="line"><div class="padding">   </div><div class="label">Total sold</div><div class="text">: </div><div class="data" data-tag="sold">1321.0</div></div><div class="line"><div class="padding">   </div><div class="label">In stock</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="in-stock">45</div></div><div class="line"><div class="padding">   </div><div class="label">On order</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data
 -tag="on-order">1</div></div><div class="line"><div class="padding">   </div><div class="label">SKU</div><div class="text">: </div><div class="data" data-tag="sku" data-key="key">GRO-000-533</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">gum</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">rope</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">ladder</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">bolt</div></div><div class="line"><div class="label">Item</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="item">water</div></div><div class="l
 ine"><div class="text">X</div><div class="te!
 xt">X</di!
 v><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div><div class="text">X</div></div><div class="line"><div class="text">X</div><div class="padding">        </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">425</div></div><div class="line"><div class="text">X</div><div class="padding">                              </div><div class="text">X</div><div class="label">Cost</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="cost">455</div></div><div class="line"><div class="text"> </div><div class="data" data-tag="links">links</div><div class="text"> </div><div class="data" data-tag="user">user</div><div class="text">  </div><div class="data" data-tag="group">group</div><div class="text">  </div></div><div class="line"><div class="data" data-tag="links">3       </div><div cla
 ss="data" data-tag="post">this    </div></div><div class="line"><div class="data" data-tag="mode">/some/file</div><div class="text"> </div><div class="data" data-tag="links">       1</div><div class="text"> </div><div class="data" data-tag="user">user      </div><div class="text">  </div><div class="data" data-tag="group">group       </div><div class="text">  </div></div>
\ No newline at end of file

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.HIPx.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.HIPx.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.HIPx.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,4 +1,25 @@
 <div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address" data-xpath="/top/address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port" data-xpath="/top/port">1</div>
+</div>
+<div class="line">
   <div class="text">df </div>
   <div class="data" data-tag="used-percent" data-xpath="/top/used-percent">   12</div>
   <div class="units">%</div>

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.HP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.HP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.HP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,4 +1,25 @@
 <div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
+  <div class="text">anchor </div>
+  <div class="padding">            </div>
+  <div class="data" data-tag="address">0x0</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="port">1</div>
+</div>
+<div class="line">
   <div class="text">df </div>
   <div class="data" data-tag="used-percent">   12</div>
   <div class="units">%</div>

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.J.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.J.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.J.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,2 +1,2 @@
-{"top": {"used-percent":12,"kve_start":"0xdeadbeef","kve_end":"0xcabb1e","host":"my-box","domain":"example.com","host":"my-box","domain":"example.com","label":"value","max-chaos":"very","min-chaos":42,"some-chaos":"[42]","host":"my-box","domain":"example.com", "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data2": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-0
 00-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data3": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data4": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455,"mode":"mode","mode_octal":"octal","links":"links","user":"user","group":"group","pre":"that","links":3,"post":"this","mode":"/some/file","mode_octal":640,"links":1,"user":"user","group":"group"}
+{"top": {"address":"0x0","port":1,"address":"0x0","port":1,"address":"0x0","port":1,"used-percent":12,"kve_start":"0xdeadbeef","kve_end":"0xcabb1e","host":"my-box","domain":"example.com","host":"my-box","domain":"example.com","label":"value","max-chaos":"very","min-chaos":42,"some-chaos":"[42]","host":"my-box","domain":"example.com", "data": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-632","name":"bolt","sold":4123,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17,"in-stock":14,"on-order":2}]}, "data2": {"item": [{"sku":"GRO-000-415","name":"gum","sold":1412.0,"in-stock":54,"on-order":10}, {"sku":"HRD-000-212","name":"rope","sold":85.0,"in-stock":4,"on-order":2}, {"sku":"HRD-000-517","name":"ladder","sold":0,"in-stock":2,"on-order":1}, {"sku":"HRD-000-63
 2","name":"bolt","sold":4123.0,"in-stock":144,"on-order":42}, {"sku":"GRO-000-2331","name":"water","sold":17.0,"in-stock":14,"on-order":2}]}, "data3": {"item": [{"sku":"GRO-000-533","name":"fish","sold":1321.0,"in-stock":45,"on-order":1}]}, "data4": {"item": ["gum","rope","ladder","bolt","water"]},"cost":425,"cost":455,"mode":"mode","mode_octal":"octal","links":"links","user":"user","group":"group","pre":"that","links":3,"post":"this","mode":"/some/file","mode_octal":640,"links":1,"user":"user","group":"group"}
 }

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.JP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.JP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.JP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,5 +1,11 @@
 {
   "top": {
+    "address": "0x0",
+    "port": 1,
+    "address": "0x0",
+    "port": 1,
+    "address": "0x0",
+    "port": 1,
     "used-percent": 12,
     "kve_start": "0xdeadbeef",
     "kve_end": "0xcabb1e",

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.T.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.T.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.T.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,3 +1,6 @@
+anchor             0x0..1
+anchor             0x0..1
+anchor             0x0..1
 df    12%
 testing argument modifier my-box.example.com...
 testing argument modifier with encoding to .example.com...

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.X.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.X.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.X.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1 +1 @@
-<top><used-percent>12</used-percent><kve_start>0xdeadbeef</kve_start><kve_end>0xcabb1e</kve_end><host>my-box</host><domain>example.com</domain><host>my-box</host><domain>example.com</domain><label>value</label><max-chaos>very</max-chaos><min-chaos>42</min-chaos><some-chaos>[42]</some-chaos><host>my-box</host><domain>example.com</domain><data test="value"><item test2="value2"><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="k
 ey">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data2><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data2><data3><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><sold>1321.0</sold><in-stock>45</in-stock><on-order>1</on-order></item></data3><data4><item test4="value4">gum<
 /item><item test4="value4">rope</item><item !
 test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data4><cost>425</cost><cost>455</cost><mode>mode</mode><mode_octal>octal</mode_octal><links>links</links><user>user</user><group>group</group><pre>that</pre><links>3</links><post>this</post><mode>/some/file</mode><mode_octal>640</mode_octal><links>1</links><user>user</user><group>group</group></top>
\ No newline at end of file
+<top><address>0x0</address><port>1</port><address>0x0</address><port>1</port><address>0x0</address><port>1</port><used-percent>12</used-percent><kve_start>0xdeadbeef</kve_start><kve_end>0xcabb1e</kve_end><host>my-box</host><domain>example.com</domain><host>my-box</host><domain>example.com</domain><label>value</label><max-chaos>very</max-chaos><min-chaos>42</min-chaos><some-chaos>[42]</some-chaos><host>my-box</host><domain>example.com</domain><data test="value"><item test2="value2"><sku test3="value3" key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku test3="value3" key="key">HRD-000-212</sku><name key="key">rope</name><sold>85</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku test3="value3" key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku test3="value3" key="key">HRD-000-632</sku><name key="key">bolt</
 name><sold>4123</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku test3="value3" key="key">GRO-000-2331</sku><name key="key">water</name><sold>17</sold><in-stock>14</in-stock><on-order>2</on-order></item></data><data2><item><sku key="key">GRO-000-415</sku><name key="key">gum</name><sold>1412.0</sold><in-stock>54</in-stock><on-order>10</on-order></item><item><sku key="key">HRD-000-212</sku><name key="key">rope</name><sold>85.0</sold><in-stock>4</in-stock><on-order>2</on-order></item><item><sku key="key">HRD-000-517</sku><name key="key">ladder</name><sold>0</sold><in-stock>2</in-stock><on-order>1</on-order></item><item><sku key="key">HRD-000-632</sku><name key="key">bolt</name><sold>4123.0</sold><in-stock>144</in-stock><on-order>42</on-order></item><item><sku key="key">GRO-000-2331</sku><name key="key">water</name><sold>17.0</sold><in-stock>14</in-stock><on-order>2</on-order></item></data2><data3><item><sku key="key">GRO-000-533</sku><name key="key">fish</name><so
 ld>1321.0</sold><in-stock>45</in-stock><on-o!
 rder>1</on-order></item></data3><data4><item test4="value4">gum</item><item test4="value4">rope</item><item test4="value4">ladder</item><item test4="value4">bolt</item><item test4="value4">water</item></data4><cost>425</cost><cost>455</cost><mode>mode</mode><mode_octal>octal</mode_octal><links>links</links><user>user</user><group>group</group><pre>that</pre><links>3</links><post>this</post><mode>/some/file</mode><mode_octal>640</mode_octal><links>1</links><user>user</user><group>group</group></top>
\ No newline at end of file

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_01.XP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_01.XP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_01.XP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,4 +1,10 @@
 <top>
+  <address>0x0</address>
+  <port>1</port>
+  <address>0x0</address>
+  <port>1</port>
+  <address>0x0</address>
+  <port>1</port>
   <used-percent>12</used-percent>
   <kve_start>0xdeadbeef</kve_start>
   <kve_end>0xcabb1e</kve_end>

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_02.E.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_02.E.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_02.E.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -34,7 +34,7 @@ op content: [unknown] [1010] [0]
 op content: [unknown] [1010] [0]
 op content: [min] [15] [0x20]
 op content: [cur] [20] [0x20]
-op content: [max] [30] [0]
+op content: [max] [125] [0]
 op content: [min] [15] [0]
 op content: [cur] [20] [0]
 op content: [max] [125] [0]

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_02.J.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_02.J.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_02.J.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1,2 +1,2 @@
-{"top": {"data": {"what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":30,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":"this is an warning"}, "__warning": {"message":"two more warnings"},"count":10,"test":4, "error": {"message":"Shut 'er down, Clancey!  She's a-pumpin' mud!  <>!,\"!<>\n"}}}
+{"top": {"data": {"what":"braces","length":"abcdef","fd":-1,"error":"Bad file descriptor","test":"good","fd":-1,"error":"Bad fi","test":"good","lines":20,"words":30,"characters":40, "bytes": [0,1,2,3,4],"mbuf-current":10,"mbuf-cache":20,"mbuf-total":30,"distance":50,"location":"Boston","memory":64,"total":640,"memory":64,"total":640,"ten":10,"eleven":11,"unknown":1010,"unknown":1010,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"min":15,"cur":20,"max":125,"val1":21,"val2":58368,"val3":100663296,"val4":44470272,"val5":1342172800, "flag": ["one","two","three"],"works":null,"empty-tag":true,"t1":"1000","t2":"test5000","t3":"ten-longx","t4":"xtest", "__error": {"message":"this is an error"}, "__error": {"message":"two more errors"}, "__warning": {"message":"this is an warning"}, "__warning": {"message":"two more warnings"},"count":10,"test":4, "error": {"message":"Shut 'er down, Clancey!  She's a-pumpin' mud!  <>!,\"!<>\n"}}}
 }

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_02.JP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_02.JP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_02.JP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -34,7 +34,7 @@
       "unknown": 1010,
       "min": 15,
       "cur": 20,
-      "max": 30,
+      "max": 125,
       "min": 15,
       "cur": 20,
       "max": 125,

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_02.X.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_02.X.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_02.X.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -2,6 +2,6 @@
 </message><message>abcdef: Bad file descriptor
 </message><message>improper use of profanity; ten yard penalty; first down
 </message><length>abcdef</length><fd>-1</fd><error>Bad file descriptor</error><test>good</test><fd>-1</fd><error>Bad fi</error><test>good</test><message>improper use of profanity; ten yard penalty; first down
-</message><lines>20</lines><words>30</words><characters>40</characters><bytes>0</bytes><bytes>1</bytes><bytes>2</bytes><bytes>3</bytes><bytes>4</bytes><mbuf-current>10</mbuf-current><mbuf-cache>20</mbuf-cache><mbuf-total>30</mbuf-total><distance units="miles">50</distance><location>Boston</location><memory units="k">64</memory><total units="kb">640</total><memory units="k">64</memory><total units="kilobytes">640</total><ten>10</ten><eleven>11</eleven><unknown>1010</unknown><unknown>1010</unknown><min>15</min><cur>20</cur><max>30</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><val1>21</val1><val2>58368</val2><val3>100663296</val3><val4>44470272</val4><val5>1342172800</val5><flag>one</flag><flag>two</flag><flag>three</flag><works>null</works><empty-tag></empty-tag><t1>1000</t1><t2>test5000</t2><t3>ten-longx</t3><t4>xtest</t4><__error><message>this is an error</message></__error><__error><message>two more err
 ors</message></__error><__warning><message>this is an warning</message></__warning><__warning><message>two more warnings</message></__warning><count>10</count><test>4</test><message>improper use of profanity; ten yard penalty; first down
+</message><lines>20</lines><words>30</words><characters>40</characters><bytes>0</bytes><bytes>1</bytes><bytes>2</bytes><bytes>3</bytes><bytes>4</bytes><mbuf-current>10</mbuf-current><mbuf-cache>20</mbuf-cache><mbuf-total>30</mbuf-total><distance units="miles">50</distance><location>Boston</location><memory units="k">64</memory><total units="kb">640</total><memory units="k">64</memory><total units="kilobytes">640</total><ten>10</ten><eleven>11</eleven><unknown>1010</unknown><unknown>1010</unknown><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><min>15</min><cur>20</cur><max>125</max><val1>21</val1><val2>58368</val2><val3>100663296</val3><val4>44470272</val4><val5>1342172800</val5><flag>one</flag><flag>two</flag><flag>three</flag><works>null</works><empty-tag></empty-tag><t1>1000</t1><t2>test5000</t2><t3>ten-longx</t3><t4>xtest</t4><__error><message>this is an error</message></__error><__error><message>two more er
 rors</message></__error><__warning><message>this is an warning</message></__warning><__warning><message>two more warnings</message></__warning><count>10</count><test>4</test><message>improper use of profanity; ten yard penalty; first down
 </message><error><message>Shut 'er down, Clancey!  She's a-pumpin' mud!  <>!,"!<>
 </message></error></data></top>
\ No newline at end of file

Modified: vendor/Juniper/libxo/dist/tests/core/saved/test_02.XP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/saved/test_02.XP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/saved/test_02.XP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -39,7 +39,7 @@
     <unknown>1010</unknown>
     <min>15</min>
     <cur>20</cur>
-    <max>30</max>
+    <max>125</max>
     <min>15</min>
     <cur>20</cur>
     <max>125</max>

Modified: vendor/Juniper/libxo/dist/tests/core/test_01.c
==============================================================================
--- vendor/Juniper/libxo/dist/tests/core/test_01.c	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/core/test_01.c	Thu Aug  3 15:43:14 2017	(r322017)
@@ -80,6 +80,10 @@ main (int argc, char **argv)
 
     xo_open_container_h(NULL, "top");
 
+    xo_emit("anchor {[:/%d}{:address/%p}..{:port/%u}{]:}\n", 18, NULL, 1);
+    xo_emit("anchor {[:18}{:address/%p}..{:port/%u}{]:}\n", NULL, 1);
+    xo_emit("anchor {[:/18}{:address/%p}..{:port/%u}{]:}\n", NULL, 1);
+
     xo_emit("df {:used-percent/%5.0f}{U:%%}\n", (double) 12);
 
     xo_emit("{e:kve_start/%#jx}", (uintmax_t) 0xdeadbeef);

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.H.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.H.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.H.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1 +1 @@
-<div class="line"><div class="text">Item </div><div class="data" data-tag="name">one</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">001</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">red</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">two</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">002</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">blue</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">three</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">003</div><
 div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">green</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">four</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">004</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">yellow</div></div>
\ No newline at end of file
+<div class="line"><div class="text">Item </div><div class="data" data-tag="name">one</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">001</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">red</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">two</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">002</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">blue</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">three</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">003</div><
 div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">green</div></div><div class="line"><div class="text">Item </div><div class="data" data-tag="name">four</div><div class="text"> is </div><div class="label">number</div><div class="padding"> </div><div class="data" data-tag="value">004</div><div class="text">, </div><div class="label">color</div><div class="decoration">:</div><div class="padding"> </div><div class="data" data-tag="color">yellow</div></div><div class="padding">     </div><div class="line"><div class="data" data-tag="address">0xdeadbeef</div><div class="text">..</div><div class="data" data-tag="foo">1</div></div><div class="padding">     </div><div class="line"><div class="data" data-tag="address">0xdeadbeef</div><div class="text">..</div><div class="data" data-tag="foo">1</div></div><div class="padding">     </div><div class="line"><div class="data" data-tag="address">0xde
 adbeef</div><div class="text">..</div><div c!
 lass="data" data-tag="foo">1</div></div><div class="padding">     </div><div class="line"><div class="data" data-tag="address">0xdeadbeef</div><div class="text">..</div><div class="data" data-tag="foo">1</div></div>
\ No newline at end of file

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HIPx.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HIPx.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HIPx.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -50,3 +50,27 @@
   <div class="padding"> </div>
   <div class="data" data-tag="color" data-xpath="/top/item[name = 'four']/color">yellow</div>
 </div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address" data-xpath="/anchor/address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo" data-xpath="/anchor/foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address" data-xpath="/anchor/address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo" data-xpath="/anchor/foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address" data-xpath="/anchor/address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo" data-xpath="/anchor/foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address" data-xpath="/anchor/address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo" data-xpath="/anchor/foo">1</div>
+</div>

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.HP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -50,3 +50,27 @@
   <div class="padding"> </div>
   <div class="data" data-tag="color">yellow</div>
 </div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo">1</div>
+</div>
+  <div class="padding">     </div>
+<div class="line">
+  <div class="data" data-tag="address">0xdeadbeef</div>
+  <div class="text">..</div>
+  <div class="data" data-tag="foo">1</div>
+</div>

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.J.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.J.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.J.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1 +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"}}
+"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}}

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.JP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.JP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.JP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -18,5 +18,21 @@
     "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
   }
 }

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.T.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.T.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.T.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -2,3 +2,7 @@ Item one is number 001, color: red
 Item two is number 002, color: blue
 Item three is number 003, color: green
 Item four is number 004, color: yellow
+     0xdeadbeef..1
+     0xdeadbeef..1
+     0xdeadbeef..1
+     0xdeadbeef..1

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.X.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.X.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.X.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -1 +1 @@
-<top><item><name>one</name><value>1</value><color>red</color></item><item><name>two</name><value>2</value><color>blue</color></item><item><name>three</name><value>3</value><color>green</color></item><item><name>four</name><value>4</value><color>yellow</color></item></top>
\ No newline at end of file
+<top><item><name>one</name><value>1</value><color>red</color></item><item><name>two</name><value>2</value><color>blue</color></item><item><name>three</name><value>3</value><color>green</color></item><item><name>four</name><value>4</value><color>yellow</color></item><anchor><address>0xdeadbeef</address><foo>1</foo></anchor><anchor><address>0xdeadbeef</address><foo>1</foo></anchor><anchor><address>0xdeadbeef</address><foo>1</foo></anchor><anchor><address>0xdeadbeef</address><foo>1</foo></anchor></top>
\ No newline at end of file

Modified: vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.XP.out
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.XP.out	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/saved/xo_01.XP.out	Thu Aug  3 15:43:14 2017	(r322017)
@@ -19,4 +19,20 @@
     <value>4</value>
     <color>yellow</color>
   </item>
+  <anchor>
+    <address>0xdeadbeef</address>
+    <foo>1</foo>
+  </anchor>
+  <anchor>
+    <address>0xdeadbeef</address>
+    <foo>1</foo>
+  </anchor>
+  <anchor>
+    <address>0xdeadbeef</address>
+    <foo>1</foo>
+  </anchor>
+  <anchor>
+    <address>0xdeadbeef</address>
+    <foo>1</foo>
+  </anchor>
 </top>

Modified: vendor/Juniper/libxo/dist/tests/xo/xo_01.sh
==============================================================================
--- vendor/Juniper/libxo/dist/tests/xo/xo_01.sh	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/tests/xo/xo_01.sh	Thu Aug  3 15:43:14 2017	(r322017)
@@ -24,4 +24,10 @@ for i in one:1:red two:2:blue three:3:green four:4:yel
     NF=--not-first
 done
 
-${XO} --close top
\ No newline at end of file
+XOAN="${XO} --wrap anchor  --not-first --warn --depth 1"
+${XOAN} "{[:18}{:address/%p}..{:foo/%u}{]:}\n" 0xdeadbeef 1
+${XOAN} "{[:/18}{:address/%p}..{:foo/%u}{]:}\n" 0xdeadbeef 1
+${XOAN} "{[:/%d}{:address/%p}..{:foo/%u}{]:}\n" 18 0xdeadbeef 1
+${XOAN} "{[:/%s}{:address/%p}..{:foo/%u}{]:}\n" 18 0xdeadbeef 1
+
+${XO} --close top

Modified: vendor/Juniper/libxo/dist/xo/xo.1
==============================================================================
--- vendor/Juniper/libxo/dist/xo/xo.1	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/xo/xo.1	Thu Aug  3 15:43:14 2017	(r322017)
@@ -188,3 +188,13 @@ prepend data to the XPath values used for HTML output 
 .Xr libxo 3 ,
 .Xr xo_emit 3 ,
 .Xr xo_options 7
+.Sh HISTORY
+The
+.Nm libxo
+library first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+.Nm libxo
+was written by
+.An Phil Shafer Aq Mt phil at freebsd.org .
+

Modified: vendor/Juniper/libxo/dist/xohtml/xohtml.1
==============================================================================
--- vendor/Juniper/libxo/dist/xohtml/xohtml.1	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/xohtml/xohtml.1	Thu Aug  3 15:43:14 2017	(r322017)
@@ -19,7 +19,8 @@
 .Op Fl "b <base>"
 .Op Fl "c" <command>"
 .Op Fl "f" <output>
-.Op Ar command argument...
+.Op Fl "w"
+.Op Ar command [argument ...]
 .Sh DESCRIPTION
 .Nm
 is a tool for preparing
@@ -69,6 +70,12 @@ command is used directly.
 .It Ic -f Ar file | Ic --file Ar file
 Output is saved to the given file, rather than to the standard output
 descriptor.
+.It Ic -w | --web
+Uses the official
+.Nm libxo
+website URL as the source path for the CSS and Javascript files
+referenced in the output of
+.Nm xohtml .
 .El
 .Pp
 .Sh EXAMPLES

Modified: vendor/Juniper/libxo/dist/xohtml/xohtml.sh.in
==============================================================================
--- vendor/Juniper/libxo/dist/xohtml/xohtml.sh.in	Thu Aug  3 15:04:54 2017	(r322016)
+++ vendor/Juniper/libxo/dist/xohtml/xohtml.sh.in	Thu Aug  3 15:43:14 2017	(r322017)
@@ -10,8 +10,10 @@
 #
 
 BASE=@XO_SHAREDIR@
+VERSION=@LIBXO_VERSION@
 CMD=cat
 DONE=
+WEB=http://juniper.github.io/libxo/${VERSION}/xohtml
 
 do_help () {
     echo "xohtml: wrap libxo-enabled output in HTML"
@@ -41,6 +43,11 @@ while [ -z "$DONE" -a ! -z "$1" ]; do
 	    shift;
 	    exec > "$FILE";
             ;;
+        -w|--web)
+            shift;
+            BASE="${WEB}";
+            ;;
+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list