After many years of using XML for the configuration file, I decided that it was time for a change.
Previously plcd was dependent on xerces-c to provide the DOM parsing and creation of the on disk configuration. This worked very well and was stable. I have never been fully happy with the XML format the I settled on and have been thinking about rewriting it for a while. Instead of using XML again, I chose to use YAML instead.
The first task was to write the output function to generate the YAML file based on the input XML. This took about 4-5 hours to get right so that it output all of the data that had been read in. Once that was done, I wrote the read file function using the output function to test the input by cross referencing the two files. After a 2-3 hours this was working right and I could remove all traces of xerces from the Makefile and the source code.