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]]);
}
}