Hi Juce Team
I hope you are all right
Here a PR to fix not matching Xml element close tag skip EOF silently
That let hard for user to understand why juce do not parse ill formed XML file:
For instance here my class Element is closed and a badly additionnal </class> was added accidentally
In this case Juce Skip the end of the library assuming the <library> element was closed
Here a fix proposal for Juce 8.0.6 Develop Branch:
juce_XmlDocument.cpp line 527 current status:
auto closeTag = input.indexOf ((juce_wchar) '>');
if (closeTag >= 0)
input += closeTag + 1;
break;
My fix proposal:
auto closeTag = input.indexOf ((juce_wchar) '>');
if (closeTag >= 0)
{
const juce::String closeTagName = String(input + 2, input + closeTag).trim();
if (parent.getTagName() != closeTagName)
{
setLastError("unmatched tag " + closeTagName.quoted() + " expected: " + parent.getTagName().quoted(), false);
break;
}
input += closeTag + 1;
}
break;
}
Hoping this will helps
Keep me in touch if you promote github pull request instead of Forum post for this.
All the best

