- The parser has been updated to the newest version of the KDLv2 spec (TBC)
- multi-line strings now use
"""
instead of"
- slashdash behaviour has been harmonized
- multi-line strings now use
kdl_unescape_v
now applies the single-line-string rules for KDLv2; usekdl_unescape_multi_line
for 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 theversion
attribute of the structkdl_emitter_options
when creating the emitter. - in C++,
parse()
andto_string()
now take an optional argument of typeKdlVersion
. - in Python, the
parse()
function and theEmitterOptions
both take an optional argumentversion
. - the command line tools
ckdl-cat
andckdl-parse-events
take options-1
and-2
to specify the KDL version.
- in C, pass
Deprecations:
- The string escaping functions
kdl_escape
andkdl_unescape
are deprecated. Usekdl_escape_v
andkdl_unescape_v
instead (the*_v
functions allow you to pass the KDL version).
Bug fixed:
fals?
is no longer treated as a synonym forfalse
(#4).
Enhancement:
kdlpp
now 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_LIB
when 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