Date: Wed, 13 Aug 2014 15:36:10 -0400 From: Phil Shafer <phil@juniper.net> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: arch@freebsd.org, John-Mark Gurney <jmg@funkthat.com>, marcel@freebsd.org, "Simon J. Gerraty" <sjg@juniper.net> Subject: Re: XML Output: libxo - provide single API to output TXT, XML, JSON and HTML Message-ID: <201408131936.s7DJaA1r089174@idle.juniper.net>
next in thread | raw e-mail | index | archive | help
Phil Shafer writes:
>FWIW, the UTF-8 strategy for libox is this:
>- all format strings are UTF-8
>- argument strings (%s) are UTF-8
>- "%ls" handles wide characters
>- "%hs" will handle locale-based strings
>- XML, JSON, and HTML will be UTF-8 output
>- text will be locale-based
Sorry for the delay, but this code is now done. Formatting widths
are done using wcwidth() so things like "%15.15s" work correctly
regardless of locale settings. As a background task, I'm converting
some basic commands to use libxo. It's slow work, but needs done....
I've a related topic: when an app goes to run a child command, how
can it determine whether that binary supports libxo-based encoding
requests? This should be known before the binary is run, since
there's no means of auto-detecting the supported output after the
fact.
For example, say I want to make a JSON-based API for my server. I
can setenv("LIBXO_OPTIONS", "json") to get JSON output, but I won't
know if the binary supports this or if the output needs to be wrapped
and escaped.
I know ELF "Note" elements can be used to carry vendor-specific
data, but have no experience with them. Would it be reasonable to
use them as a means of communicating this information to other bits
of software? Is FreeBSD using Notes for other information currently?
Thanks,
Phil
P.s.: Attached is a screenshot of a quick demo using netstat output
rendered in HTML with the jquery qtip popup that shows the XPath,
along with some firebug output to show the contents. (The "data-qtip"
attribute is added dynamically by the qtip library.)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408131936.s7DJaA1r089174>
