# HG changeset patch # User František Kučera # Date 1622920366 -7200 # Node ID 5bfd1d389d5fa9766673c0e64c9c84b18649b89a # Parent 0b0d214c3cb2103becd363577ad15b25753bf2d6 encode XML element names properly diff -r 0b0d214c3cb2 -r 5bfd1d389d5f src/XMLDocumentConstructor.h --- a/src/XMLDocumentConstructor.h Sat Jun 05 21:06:34 2021 +0200 +++ b/src/XMLDocumentConstructor.h Sat Jun 05 21:12:46 2021 +0200 @@ -67,10 +67,6 @@ return value && length > 0 ? std::string((const char*) value, length) : ""; } - const Glib::ustring c2xname(cbor_data value, uint64_t length) { - return nameCodec.encode(c2x(value, length)); - } - xmlpp::Element* parentOrSelf(xmlpp::Element* current) { return current->get_parent() == nullptr ? current : current->get_parent(); } @@ -87,11 +83,11 @@ void appendScalarValue(Glib::ustring value, Glib::ustring cborType, bool isNull = false) { // TODO: null if (mode.back() == Mode::ARRAY) { - xmlpp::Element* element = current->add_child(itemName); + xmlpp::Element* element = current->add_child(nameCodec.encode(itemName)); element->add_child_text(value); element->set_attribute("value-type", cborType); } else if (mode.back() == Mode::MAP_KEY) { - current = current->add_child(value); + current = current->add_child(nameCodec.encode(value)); current->set_attribute("key-type", cborType); mode.push_back(Mode::MAP_VALUE); } else if (mode.back() == Mode::MAP_VALUE) { @@ -126,7 +122,7 @@ void mapStart(ssize_t size) { if (mode.back() == Mode::ROOT) { } else if (mode.back() == Mode::ARRAY) { - current = current->add_child(itemName); + current = current->add_child(nameCodec.encode(itemName)); current->set_attribute("value-type", "map"); } else if (mode.back() == Mode::MAP_VALUE) { mode.pop_back();