NAME
xo_emit,
xo_emit_h, xo_emit_hv
— emit formatted output based on
format string and arguments
LIBRARY
library “libxo”
SYNOPSIS
#include
<libxo/xo.h>
int
xo_emit(const
char *fmt,
...);
int
xo_emit_h(xo_handle_t
*xop, const char
*fmt, ...);
int
xo_emit_hv(xo_handle_t
*xop, const char
*fmt, va_list
vap);
DESCRIPTION
Thexo_emit()
function emits formatted output using the description in a format string along
with a set of zero or more arguments, in a style similar to
printf(3) but using a more complex format description string, as
described in
xo_format(5).
xo_emit()
uses the default output handle, as described in
libxo(3), where
xo_emit_h()
uses an explicit handle.
xo_emit_hv()
accepts a va_list for additional flexibility.
EXAMPLES
In this example, a set of four values is emitted using the following source code:
xo_emit(" {:lines/%7ju} {:words/%7ju} "
"{:characters/%7ju} {d:filename/%s}0,
linect, wordct, charct, file);
% wc /etc/motd
25 165 1140 /etc/motd
% wc --libxo xml,pretty,warn /etc/motd
<wc>
<file>
<lines>25</lines>
<words>165</words>
<characters>1140</characters>
<filename>/etc/motd</filename>
</file>
</wc>
% wc --libxo json,pretty,warn /etc/motd
{
"wc": {
"file": [
{
"lines": 25,
"words": 165,
"characters": 1140,
"filename": "/etc/motd"
}
]
}
}
% wc --libxo html,pretty,warn /etc/motd
<div class="line">
<div class="text"> </div>
<div class="data" data-tag="lines"> 25</div>
<div class="text"> </div>
<div class="data" data-tag="words"> 165</div>
<div class="text"> </div>
<div class="data" data-tag="characters"> 1140</div>
<div class="text"> </div>
<div class="data" data-tag="filename">/etc/motd</div>
</div>
RETURN CODE
xo_emit returns a negative value on error.
If the XOF_COLUMNS flag has been turned on for the
specific handle using
xo_set_flags(3), then the number of display columns consumed
by the output will be returned.
SEE ALSO
xo_open_container(3), xo_open_list(3), xo_format(5), libxo(3)
HISTORY
The libxo library first appeared in
FreeBSD 11.0.
AUTHORS
libxo was written by Phil
Shafer
<phil@freebsd.org>.