]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetBibtex.cpp
Fix use of std::regex_match
[lyx.git] / src / insets / InsetBibtex.cpp
index 3e59d654ceba136f59b4f070c414ef5e55630246..2f41c0ec5f6d9a2a29ed70a086d9985eecb08da9 100644 (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]]);
                        }
                }