home | help
LIBXO(3)		     Library Functions Manual			LIBXO(3)

NAME
     xo_attr, xo_attr_h, xo_attr_hv -- Add attribute name/value pairs to format-
     ted output

LIBRARY
     libxo

SYNOPSIS
     #include <libxo/xo.h>

     int
     xo_attr(const char *name, const char *fmt, ...);

     int
     xo_attr_h(xo_handle_t *handle, const char *name, const char *fmt, ...);

     int
     xo_attr_hv(xo_handle_t *handle, const char *name, const char *fmt,
	 va_list vap);

DESCRIPTION
     The  xo_attr() function emits attributes for the XML output style.  The at-
     tribute value is recorded in the handle and is attached to the  next  field
     that is emitted via a xo_emit(3) call.

     The  name	parameter give the name of the attribute to be encoded.  The fmt
     parameter gives a printf-style format string used to format  the  value  of
     the attribute using any remaining arguments, or the vap parameter as passed
     to xo_attr_hv().

	       EXAMPLE:
		 xo_attr("seconds", "%ld", (unsigned long) login_time);
		 struct tm *tmp = localtime(login_time);
		 strftime(buf, sizeof(buf), "%R", tmp);
		 xo_emit("Logged in at {:login-time}\n", buf);
	       XML:
		   <login-time seconds="1408336270">00:14</login-time>

     Since  attributes	are  only emitted in XML, their use should be limited to
     meta-data and additional or redundant representations of data already emit-
     ted in other form.

SEE ALSO
     xo_emit(3), libxo(3)

ADDITIONAL DOCUMENTATION
     FreeBSD uses libxo version 0.6.1.	Complete documentation can be  found  on
     github:

	   http://juniper.github.io/libxo/0.6.1/libxo-manual.html

     libxo lives on github as:

	   https://github.com/Juniper/libxo

     The latest release of libxo is available at:

	   https://github.com/Juniper/libxo/releases

HISTORY
     The libxo library was added in FreeBSD 11.0.

AUTHOR
     Phil Shafer

FreeBSD ports 15.quarterly	   July, 2014				LIBXO(3)

home | help