freebsd-dev/contrib/libxo
Phil Shafer 406a584d7e Import libxo-1.0.2
from 1.0.0:
    Add "continuation" flag, to allow multiple "xo" invocations in a single line of output (#58)
    Add --top-wrap to make top-level JSON wrappers
    Add --{open,close}-{list,instace} options
    Add xo_xml_leader(), to detect use of some bogus XML tags. It's still bad form, but it's a little safer now
    Avoid call to xo_write before xo_flush, since the latter calls the former
    Check return code from xo_flush_h properly (<0) (FreeBSD Bug 236935)
    For JSON output, avoid newline before a container's close brace (#62)
    Merge branch 'text_only' of https://github.com/zvr/libxo into zvr-text_only
    Use XO_USE_INT_RETURN_CODES, not USE_INT_RETURN_CODES
    add docs for --continuation
    add docs for --not-first
    call xo_state_set_flags before values and close containers; add XOIF_MADE_OUTPUT flag to track state; make proper empty JSON objects in xo_finish
    color_map code has to be #ifdef'd out, since the struct definition
    correct xo_flush_func_t (doesn't use xo_ssize_t)
    make depth change for --top-wrap only for JSON
    fix to handle --top-wrap in "xo" by being more consistent with handling trailing newlines
    fix to handle text-only version #64 (from zvr)
    fix xo_buf_has_room for round up to the next XO_BUFSIZ, not just add XO_BUFSIZ to the size (FreeBSD Bug 236937)
    update docs for new "xo" options
    update functions to use xo_ssize_t
    update test cases
from 1.0.1:
    Add EINTEGRITY to .pot files under test/gettext/ (fix from FreeBSD)
from 1.0.2:
    handle failure from xo_vnsprintf; don't add -1 to "rc"

PR:		236937, 236935
Submitted by:	phil
Reported by:	Alfonso S. Siciliano <alfix86@gmail.com>
MFC after:	2 weeks
2019-04-03 21:55:39 +00:00
..
doc Import libxo-1.0.2 2019-04-03 21:55:39 +00:00
encoder Import libxo-0.8.0: 2017-06-08 13:04:01 +00:00
libxo Import libxo-1.0.2 2019-04-03 21:55:39 +00:00
packaging Import to 0.6.1 2016-04-15 18:46:15 +00:00
tests Import libxo-1.0.2 2019-04-03 21:55:39 +00:00
xo Import libxo-1.0.2 2019-04-03 21:55:39 +00:00
xohtml Update from libxo-0.8.1 to 0.8.4: 2017-08-03 15:47:42 +00:00
xolint Update from libxo-0.8.1 to 0.8.4: 2017-08-03 15:47:42 +00:00
xopo Update from libxo-0.8.1 to 0.8.4: 2017-08-03 15:47:42 +00:00
.gitignore Merge libxo 0.4.6 2016-04-12 23:30:56 +00:00
.svnignore Merge libxo 0.4.6 2016-04-12 23:30:56 +00:00
.travis.yml Upgrade libxo to 0.4.5. 2015-08-24 16:26:20 +00:00
configure.ac Import libxo-1.0.2 2019-04-03 21:55:39 +00:00
Copyright
INSTALL.md Upgrade libxo to 0.4.5. 2015-08-24 16:26:20 +00:00
libxo-config.in Import to 0.6.1 2016-04-15 18:46:15 +00:00
LICENSE
Makefile.am Update from libxo-0.8.1 to 0.8.4: 2017-08-03 15:47:42 +00:00
README.md Upgrade libxo to 0.1.5 2014-11-11 21:37:17 +00:00
warnings.mk

libxo

libxo - A Library for Generating Text, XML, JSON, and HTML Output

The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced. The application calls a function "xo_emit" to product output that is described in a format string. A "field descriptor" tells libxo what the field is and what it means.

    xo_emit(" {:lines/%7ju/%ju} {:words/%7ju/%ju} "
            "{:characters/%7ju/%ju}{d:filename/%s}\n",
            linect, wordct, charct, file);

Output can then be generated in various style, using the "--libxo" option:

    % wc /etc/motd
          25     165    1140 /etc/motd
    % wc --libxo xml,pretty,warn /etc/motd
    <wc>
      <file>
        <filename>/etc/motd</filename>
        <lines>25</lines>
        <words>165</words>
        <characters>1140</characters>
      </file>
    </wc>
    % wc --libxo json,pretty,warn /etc/motd
    {
      "wc": {
        "file": [
          {
            "filename": "/etc/motd",
            "lines": 25,
            "words": 165,
            "characters": 1140
          }
        ]
      }
    }
    % 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>

View the beautiful documentation at:

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

Analytics