DarkRadiant: master 46192738
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
orbweaver | orbweaver | master | 30.01.2024 20:19 | master 25117a18 |
Changeset | Replace usage of libxml2 with pugixml pugixml is a lightweight C++ XML parsing library with a much more ergonomic interface than libxml2, and more importantly fixes the mysterious problem with XPaths that xmlReadFile() on Linux seems to introduce. Since our usage of XML was already wrapped in the xmlutil::Node and Document classes, and well covered by unit tests, this replacement was much more straightforward that it might otherwise have been. Very few changes to the application outside of the xmlutil library were required, and the only change to a unit test involved making the "round-trip" SaveDocumentTo{String,File} tests more tolerant of formatting changes since pugixml does not preserve formatting. The pugixml library itself has been imported into libs/pugixml and the HEADER_ONLY option set in its config, which will hopefully make the Windows integration easy (or even a no-op). |
|||
add - libs/pugixml/pugiconfig.hpp | Diff File | |||
add - libs/pugixml/pugixml.cpp | Diff File | |||
add - libs/pugixml/pugixml.hpp | Diff File | |||
mod - libs/xmlutil/Document.cpp | Diff File | |||
mod - libs/xmlutil/Document.h | Diff File | |||
mod - libs/xmlutil/Node.cpp | Diff File | |||
mod - libs/xmlutil/Node.h | Diff File | |||
mod - radiant/eventmanager/ShortcutSaver.h | Diff File | |||
mod - radiantcore/map/format/portable/PortableMapWriter.cpp | Diff File | |||
mod - radiantcore/xmlregistry/RegistryTree.cpp | Diff File | |||
mod - test/XmlUtil.cpp | Diff File | |||
mod - test/algorithm/XmlUtils.h | Diff File |