Fix use of std::regex_match

This commit is contained in:
Thibaut Cuvelier 2020-07-09 02:38:07 +02:00 committed by Thibaut Cuvelier
parent e8ee0100fc
commit 467d57bca1

View File

@ -1191,20 +1191,19 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
while (tagIt != tagEnd) {
string tag = tagIt->str(); // regex_match cannot work with temporary strings.
++tagIt;
std::regex_match(tag, match, tagRegex);
regex_match(tag, match, tagRegex);
if (toDocBookTag.find(match[1]) == toDocBookTag.end()) {
if (regex_match(tag, match, tagRegex)) {
if (toDocBookTag[match[1]] == "SPECIFIC") {
delayedTags[match[1]] = match[2];
} else {
xs << xml::StartTag(toDocBookTag[match[1]]);
xs << from_utf8(match[2].str());
xs << xml::EndTag(toDocBookTag[match[1]]);
}
} else {
LYXERR0("The BibTeX field " << match[1].str() << " is unknown.");
xs << XMLStream::ESCAPE_NONE << from_utf8("<!-- Output Error: The BibTeX field " + match[1].str() + " is unknown -->\n");
continue;
}
if (toDocBookTag[match[1]] == "SPECIFIC") {
delayedTags[match[1]] = match[2];
} else {
xs << xml::StartTag(toDocBookTag[match[1]]);
xs << from_utf8(match[2].str());
xs << xml::EndTag(toDocBookTag[match[1]]);
}
}