- KDL 2.0.0 is now the default
- The parser has been updated to the final newest version of the KDLv2 spec
- multi-line strings now use
"""instead of" - slashdash behaviour has been harmonized
- line continuations are now allowed everywhere
- multi-line strings now use
kdl_unescape_vnow applies the single-line-string rules for KDLv2; usekdl_unescape_multi_linefor multi-line rules.
Bug fixed:
- The byte-order-mark
U+FEFF(“the BOM”) is now treated as whitespace, as required by the KDLv1 spec (#8).
Enhancement:
- The parser and emitter now support the draft KDLv2 spec if you explicitly enable this in the options:
- in C, pass
KDL_DETECT_VERSION(for hybrid mode) orKDL_READ_VERSION_2(for v2 only) as a parse option tokdl_create_*_parser(), and set theversionattribute of the structkdl_emitter_optionswhen creating the emitter. - in C++,
parse()andto_string()now take an optional argument of typeKdlVersion. - in Python, the
parse()function and theEmitterOptionsboth take an optional argumentversion. - the command line tools
ckdl-catandckdl-parse-eventstake options-1and-2to specify the KDL version.
- in C, pass
Deprecations:
- The string escaping functions
kdl_escapeandkdl_unescapeare deprecated. Usekdl_escape_vandkdl_unescape_vinstead (the*_vfunctions allow you to pass the KDL version).
Bug fixed:
fals?is no longer treated as a synonym forfalse(#4).
Enhancement:
kdlppnow can now be built as a shared library (so/dylib/DLL). (#2, #3; thanks to Artemis Everfree).
This comes with the same caveat as for libkld: on Windows, you must defineKDLPP_STATIC_LIBwhen you're linking statically before including<kdlpp.h>.
Bugs fixed:
- The emitter can now emit the value
false(#1, thanks to Erin). - Emitter errors are now returned correctly.
Initial release