1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-26 11:47:31 +00:00
freebsd/contrib/libxo
Alexander Kabaev dbf26257f1 Unbreak libxo's handling of characters not representable in current locale
The xo_format_string_direct function loops forever never advancing the
processed string pointer when it encounters a character that makes
mbrtowc fail. Make it emit '?' character instead, as it seems this is
what the code intent was, sans bugs.

Differential Revision: https://reviews.freebsd.org/D2802
Reviewed by: marcel
2015-06-13 15:14:39 +00:00
..
bin Upgrade libxo to 0.2.0. 2015-01-19 02:22:03 +00:00
build
doc Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
libxo Unbreak libxo's handling of characters not representable in current locale 2015-06-13 15:14:39 +00:00
m4 Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
packaging Upgrade libxo to 0.2.0. 2015-01-19 02:22:03 +00:00
tests Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
xo Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
xohtml Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
xolint Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
.gitignore
.travis.yml
configure.ac Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +00:00
Copyright
install-sh
libxo-config.in
LICENSE
Makefile.am Upgrade libxo to 0.3.2. 2015-04-27 17:23:19 +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