xml: use version from configuration if provided (#5215)

This commit is contained in:
Daniel Marjamäki 2023-07-02 18:13:11 +02:00 committed by GitHub
parent db49687ae5
commit 72245b1b15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 3 deletions

View File

@ -379,8 +379,17 @@ void ErrorMessage::deserialize(const std::string &data)
}
}
std::string ErrorMessage::getXMLHeader(const std::string& productName)
std::string ErrorMessage::getXMLHeader(std::string productName)
{
std::string version = CppCheck::version();
if (!productName.empty() && std::isdigit(productName.back())) {
const std::string::size_type pos = productName.find_last_not_of(".0123456789");
if (pos > 1 && pos != std::string::npos && productName[pos] == ' ') {
version = productName.substr(pos+1);
productName.erase(pos);
}
}
tinyxml2::XMLPrinter printer;
// standard xml header
@ -393,7 +402,7 @@ std::string ErrorMessage::getXMLHeader(const std::string& productName)
printer.OpenElement("cppcheck", false);
if (!productName.empty())
printer.PushAttribute("product-name", productName.c_str());
printer.PushAttribute("version", CppCheck::version());
printer.PushAttribute("version", version.c_str());
printer.CloseElement(false);
printer.OpenElement("errors", false);

View File

@ -148,7 +148,7 @@ public:
*/
std::string toXML() const;
static std::string getXMLHeader(const std::string& productName);
static std::string getXMLHeader(std::string productName);
static std::string getXMLFooter();
/**