Skip to content

libxo-0.1.2

Choose a tag to compare

@philshafer philshafer released this 30 Aug 03:02
· 5264 commits to main since this release

Big features:

  • xo_parse_args looks for "--libxo=" options and alters behavior
  • support for clang
  • runs under freebsd; patches directory has patches for select apps
  • more regression test cases
  • xolint is a new "lint"-like utility for xo_emit format strings
  • xohtml is a wrapper for turning libxo=html output into html files (for testing/debugging)
  • complete documentation
  • new flags:
    • XOF_UNDERSCORE -- turns hyphens into underscores in field names for JSON
    • XOF_COLUMNS -- xo_emit returns the number of columns emitted
    • XOF_FLUSH -- flush output after each xo_emit call (when possible)

Minor changes:

  • Add xo_set_options()
  • make depth check failure return
  • Add underscore flag (XOF_UNDERSCORE)
  • Delete configure
  • Detect gcc (vs clang) HAVE_GCC
  • Update documentation
  • add 8k limit for anchors
  • add ADB_PATH
  • add anchors
  • add libxo/xoconfig.h
  • add missing tag when the caller forgets
  • add more error messages
  • add unescape flag to trailing strings
  • add xo-html
  • add xo_get_style() and xo_get_flags()
  • add xo_message functions
  • allow backslashes to escape inside format strings;
  • walk format code for labels and titles even in xml/json mode to allow fields to be popped off xo_vap
  • allow encoding of empty tags for XML and JSON
  • dont '(null)' on missing option
  • fix references
  • fix warnings under freebsd10
  • fix {N:x/y} related bug
  • fix {d:tag/%s} bug for xml and json
  • get 'xolint -D' output for docs
  • make -fno-inline-functions-called-once gcc-specific
  • make more errors fatal
  • fix xo_format_data returning short data
  • make real types for flags
  • make xo_write, a function for calling xop->xo_write; add the {U:} units role
  • need ":" in front of old style options
  • new 'note' role
  • new XOF_COLUMNS and XOF_FLUSH flags
  • new version strings
  • new {W:warning} and {E:error} field types
  • create xo_parse_args, which extracts --libxo arguments from argv before main() passes it to getopt.
  • only care about max width/columns for display output
  • only show keys if XOF_KEYS; call xo_format_data even if text and encode-only
  • progress for xolint
  • rename div[1-5] to meaningful names; allows keys on display fields; encode them correctly, esp with keys
  • make XOF_KEYS add data-key="key" for HTML
  • rename libxo.h to xo.h
  • rename libxo/libxo-config.h to libxo/xoconfig.h
  • rename xo-html to xohtml
  • s/opt_text/opt_print/, now "-p" option (xolint)
  • show keys in red (xohtml)
  • teach {L:} and {P:} to handle empty contents
  • update docs
  • update test cases
  • use xo_errx; fix a couple of error messages; give usage message when there is nothing to do
  • use xo_format_content for warnings, errors, labels, and notes
  • xolint docs